Czy istnieje sposób na wychwycenie błędu HTTP 500 zwróconego przez usługę internetową .asmx z klienta .Net?. Kod sieciowy do przechwytywania odpowiedzi o błędzie HTTP 500 z usługi internetowej .asmx.
Korzystanie .Net 4.5 (VS2015), kod klienta Net zużywa usługę .asmx internetową i nazywa je za pomocą poniższego kodu:
var client = new WebserviceApi.MyServiceSoapClient();
var response = client.MyWebServiceMethod();
Jeśli .asmx serwis internetowy zwraca błąd HTTP 500 z komunikat SOAP zawierający szczegóły komunikatu o błędzie zmienna "response" ma wartość null.
Korzystanie z Fiddler, ruch pokazuje odpowiedź HTTP 500 z usługi internetowej .asmx. Odpowiedź zawiera komunikat XML SOAP ze szczegółami dotyczącymi błędu.
Żaden wyjątek nie został zgłoszony lub przechwycony w kodzie klienta .Net, wykonanie jest normalne.
Oznacza to, że nie ma informacji, które klient mógłby poznać w związku z charakterem wyjątku. Cały kod klienta może zrobić, to sprawdzić, czy "odpowiedź" jest pusta, ale komunikat wyjątku nie jest dostępny dla kodu klienta.
Czy istnieje sposób zmuszenia kodu klienta .Net do zgłoszenia wyjątku, jeśli usługa WWW .asmx zwraca odpowiedź HTTP 500, aby komunikat o błędzie mógł zostać sprawdzony/zalogowany?
Nie możesz złapać wyjątku, używając instrukcji 'try cath'? – anmarti
Nie jest zgłaszany wyjątek, wykonywanie jest normalne z zerową "odpowiedzią". – Lenny
Skąd wiesz, że masz 500? – anmarti