У меня есть простая операция веб-сервиса, подобная этой:
[WebMethod]
public string HelloWorld()
{
throw new Exception("HelloWorldException");
return "Hello World";
}
А потом у меня есть клиентское приложение, которое использует веб-сервис и затем вызывает операцию. Очевидно, это вызовет исключение: -)
try
{
hwservicens.Service1 service1 = new hwservicens.Service1();
service1.HelloWorld();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
В моем блоке catch я хотел бы извлечь Сообщение фактического исключения, чтобы использовать его в своем коде. Выявлено исключение SoapException
, что нормально, но свойство Message
выглядит следующим образом ...
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 ---
... и InnerException
равно null
.
Что я хотел бы сделать, это извлечь Message
свойство InnerException
(текст HelloWorldException
в моем примере), кто-нибудь может помочь с этим? Если вы можете избежать этого, пожалуйста, не предлагайте анализировать Message
свойство SoapException
.