如何从ASP.NET中的soap异常中提取内部异常?
发布时间:2020-12-15 23:51:05 所属栏目:asp.Net 来源:网络整理
导读:我有一个这样简单的web服务操作: [WebMethod] public string HelloWorld() { throw new Exception("HelloWorldException"); return "Hello World"; } 然后我有一个消费Web服务的客户端应用程序,然后调用该操作.显然会抛出异常:-) try { hwservicens.Service
我有一个这样简单的web服务操作:
[WebMethod] public string HelloWorld() { throw new Exception("HelloWorldException"); return "Hello World"; } 然后我有一个消费Web服务的客户端应用程序,然后调用该操作.显然会抛出异常:-) 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:svnrootVordurWebService1Service1.asmx.cs:line 27 --- End of inner exception stack trace --- …而InnerException为null. 我想做的是提取InnerException(我的示例中的HelloWorldException文本)的Message属性,任何人都可以帮助吗?如果可以避免,请不要建议解析SoapException的Message属性. 解决方法
不幸的是,我不认为这是可能的.
您在Web服务代码中提升的异常正在编码为Soap Fault,然后将其作为字符串传递回您的客户端代码. 您在SoapException消息中看到的仅仅是Soap错误中的文本,它不会被转换回异常,而只是存储为文本. 如果您希望在错误的条件下返回有用的信息,那么我建议从您的Web服务返回一个可以包含您的信息的“错误”属性的自定义类. [WebMethod] public ResponseClass HelloWorld() { ResponseClass c = new ResponseClass(); try { throw new Exception("Exception Text"); // The following would be returned on a success c.WasError = false; c.ReturnValue = "Hello World"; } catch(Exception e) { c.WasError = true; c.ErrorMessage = e.Message; return c; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 项目模板和布局模板之间的区别
- asp.net-mvc – Full-Stack Web应用程序框架的定义是什么
- asp.net – 具有html5中的文本以外的输入类型的UpdatePanel
- 如何在ASP.NET Core WebAPI中使用Newtonsoft:Json.NET?
- asp.net-mvc – JsonSerializer – 使用’N2’格式序列化小
- asp.net-mvc – 属性级验证错误阻碍了类级验证的验证
- asp.net-mvc-2 – 是否可以在EditorFor模板控件中使用Displ
- asp.net-mvc – 如何使用app_start或webactivator注册区域?
- asp.net – 一个页面只能有一个服务器端表单标签
- 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列
推荐文章
站长推荐
- asp.net-mvc – MVC 3部分页面(Razor)和MVC 3视图
- asp.net-web-api2 – 如何在WebAPI中使用Swagger
- asp.net-mvc-3 – 以下语句的等效Razor语法?
- ASP.NET <%=%> vs <%:%>
- 第17章 ASP.NET MVC实战: 构建NuGet.org网站
- .net中如何获取机器硬件信息(防软件复制版)
- asp.net-mvc – ASP.NET MVC自定义路由约束和依赖
- asp.net-mvc – 最佳实践:在web api控制器中处理
- asp.net-mvc – 在visual studio中快速更改视图和
- ASP.NET Core中的ActionFilter与DI
热点阅读