C'è un modo per rilevare l'errore HTTP 500 restituito da un servizio Web .asmx da un client .Net?. Codice netto per intercettare una risposta di errore HTTP 500 da un servizio Web .asmx
Utilizzando .Net 4.5 (VS2015), il codice client .NET consuma il servizio ASMX Web e lo chiama usando il codice seguente:
var client = new WebserviceApi.MyServiceSoapClient();
var response = client.MyWebServiceMethod();
Se il servizio web ASMX restituisce un errore HTTP 500 con un messaggio SOAP contenente i dettagli del messaggio di errore, la variabile "risposta" è impostata su null.
Utilizzando Fiddler, il traffico mostra la risposta HTTP 500 dal servizio Web .asmx. La risposta contiene un messaggio XML SOAP con dettagli sull'errore.
Nessuna eccezione viene generata o catturata nel codice client .Net, l'esecuzione continua normalmente.
Ciò significa che non ci sono informazioni che il cliente possa rilevare in merito alla natura dell'eccezione. Tutto ciò che il codice client può fare è controllare se la "risposta" è nullo, ma il messaggio di eccezione non è disponibile per il codice client.
Esiste un modo per forzare il codice client .Net a generare un'eccezione se il servizio Web .asmx restituisce una risposta HTTP 500 in modo che il messaggio di errore possa essere controllato/registrato?
Non riesci a catturare l'Eccezione usando l'istruzione 'try cath'? – anmarti
Non viene generata alcuna eccezione, l'esecuzione continua normalmente con una variabile "risposta" nullo. – Lenny
Quindi, come fai a sapere di avere un 500? – anmarti