Пользовательское исключение WCF FaultException выдано, но ProtocolException получено клиентом
У меня есть служба WCF, которая закодирована для создания Custom FaultException при определенных условиях. При размещении локально и на нескольких серверах это выполняется так, как ожидается. Пользовательская ошибка, вызванная пользовательской ошибкой службы, обнаруженной клиентом, но на производственном сервере и сервере UAT пользовательская ошибка вызывается тем, что получает клиент, является исключением протокола (ошибка 500).
Кто-нибудь знает о настройке IIS или сервера, которая может повлиять на этот сервер WCF? Эта проблема сводит меня с ума
1 ответ
У меня похожая проблема,
наш сервер использует стороннюю веб-службу, когда клиент подключается к нашему серверу с того же компьютера, наш сервер может обнаружить исключение Fault, но если клиент подключается по сети, наш сервер не может обработать исключение Fault, и только получает "500 Internal Server Error".
Я использовал сниффер, чтобы увидеть входящие данные, и я вижу, что веб-сервис отправляет исключение сбоя в обоих случаях, это сторонний веб-сервис, поэтому я не контролирую его.
клиенты используют.Net Remotting для подключения к серверу.
Решение:
добавить RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Выкл; к серверу Remoting, по какой-то причине это влияет на исключения, которые он (сервер) получает. это не идеальное решение, потому что теперь мы выставляем исключения для наших серверов...