Есть ли способ уловить ошибку HTTP 500, возвращенную веб-службой .asmx от клиента .Net?. Чистый код, чтобы поймать ответ HTTP 500 от веб-службы .asmx
Использование .Net 4.5 (VS2015), код клиента .Net потребляет .asmx веб-службы и называет его, используя код ниже:
var client = new WebserviceApi.MyServiceSoapClient();
var response = client.MyWebServiceMethod();
Если .asmx веб-сервис возвращает ошибку 500 HTTP с SOAP-сообщение, содержащее данные сообщения об ошибке, для переменной «response» установлено значение null.
Используя Fiddler, трафик показывает ответ HTTP 500 от веб-службы .asmx. Ответ содержит XML-сообщение SOAP с подробными сведениями об ошибке.
Исключение не выбрасывается или не попадает в код клиента .Net, выполнение продолжается как обычно.
Это означает, что клиент не может получить информацию о характере исключения. Весь клиентский код может проверить, является ли «ответ» нулевым, но сообщение об исключении недоступно для кода клиента.
Есть ли способ заставить код клиента .Net генерировать исключение, если веб-служба .asmx возвращает ответ HTTP 500, чтобы можно было проверить/зарегистрировать сообщение об ошибке?
Не можете ли вы поймать Исключение, используя инструкцию 'try cath'? – anmarti
Исключение не выбрасывается, выполнение продолжается как обычно с нулевой переменной «ответ». – Lenny
Итак, откуда вы знаете, что у вас 500? – anmarti