mostrar una respuesta SoapException servicio web en el cliente en ASP.NET
-
21-09-2019 - |
Pregunta
Estoy tratando de hacer una prueba de servicio web y lanzar una SoapException. Pero al abrir el servicio a través del navegador, que muestra un error interno del servidor -. 500
Si trato de consumir de forma manual mediante el envío de un SOAPRequest creado manualmente (en StringBuilder), me sale el mismo error "ServerError - 500" en Visual Studio sí en la línea "WebResponse response = req.GetResponse()
"
¿Hay alguna forma puede ver realmente el "fallo en la respuesta XML".
Solución 3
después de navegar a través de 5-6 horas, finalmente lo consiguió ...... aquí está:
Cuando recibe la respuesta manualmente, utilice la siguiente:
try
{
WebResponse response = req.GetResponse();
Stream str = response.GetResponseStream();
StreamReader rdr = new StreamReader(str);
Response.Write(rdr.ReadToEnd());
Response.End();
}
catch (WebException webEx)
{
Stream str = webEx.Response.GetResponseStream();
StreamReader rdr = new StreamReader(str);
Response.Write(rdr.ReadToEnd());
Response.End();
}
Otros consejos
Parece que hay algo mal con el servicio y hay que depurarlo en el lado del servidor en lugar del lado del cliente. Me llegado a esta conclusión porque usted tiene un problema con su código de cliente y un navegador web.
Si se asume que está utilizando .NET que han permitido la visualización de los errores ASP.NET en el servidor? Ver este artículo para obtener información.
Actualización:
Así que usted está lanzando un error en el servidor y desea obtener el texto de error en el cliente? Un error en el servidor se supone que debe dar como resultado un mensaje de error 500 y es poco probable que vuelva cualquier XML al cliente. Tal vez se puede pasar algo al constructor SoapException?
¿Has mirado en los documentos de SoapException ? Tienen algunos ejemplos de la transmisión de información mediante la propiedad Detalle de SoapException.
Se puede llegar a la asmx (suponiendo que está utilizando asmx) en el navegador para ver si está funcionando en absoluto?