tengo una simple operación de servicio web como éste:¿Cómo se extrae la excepción interna de una excepción soap en ASP.NET?
[WebMethod]
public string HelloWorld()
{
throw new Exception("HelloWorldException");
return "Hello World";
}
Y luego tengo una aplicación cliente que consume el servicio web y luego llama a la operación. Obviamente va a lanzar una excepción :-)
try
{
hwservicens.Service1 service1 = new hwservicens.Service1();
service1.HelloWorld();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
En mi bloque catch, lo que me gustaría hacer es extraer el mensaje de la excepción real para usarlo en mi código. La excepción capturada es un SoapException
, lo cual está bien, pero es Message
propiedad es así ...
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Exception: HelloWorldException
at WebService1.Service1.HelloWorld() in C:\svnroot\Vordur\WebService1\Service1.asmx.cs:line 27
--- End of inner exception stack trace ---
... y el InnerException
es null
.
Lo que me gustaría hacer es extraer la propiedad Message
del InnerException
(el HelloWorldException
texto en mi muestra), ¿alguien puede ayudar con eso? Si puede evitarlo, no sugiera analizar la propiedad Message
del SoapException
.
¿Por qué crear una clase personalizada si podría lograrlo sin uno? Por favor revisa mi respuesta en esta publicación. – BornToCode