对WCF异常解决办法

首先,我认为这是一个很有用的插件,如果继续得到改进和增强,我想该插件会被更多开发者使用。对于WCF异常源码的学习,对于我们掌握怎样正确创建WCF异常插件工程是很有帮助的,而且也可从中学到不少编程技巧,例如委托和模板方法。希望大家一起研究下

创新互联专注于企业营销型网站、网站重做改版、黎川网站定制设计、自适应品牌网站建设、H5建站商城建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为黎川等各大城市提供网站开发制作服务。

缺省情况下,服务端发生异常,客户端会得到一个缺省的Exception,但这个Exception实例中并不包括详细的异常信息。只是告诉客户端服务端不能正常工作。在服务器和客户端模式的程序中,有些情况下,服务启是不能完全信赖客户端的。#t#

比如浏览器和web服务器之间,为了防止非法的客户端从异常消息中获取服务端的比较详细的信息,使得心怀叵测之人有机可乘,所以服务启对于异常 返回通常会比较模糊。WCF异常也采用了这种做法,缺省情况下,它返回给客户端的异常只告知我出错了,但不告诉人家他哪里错了。这通常应用于客户端来源不明的生产环境,以此保护服务程序。 

如果想消息更友好一些,可以通过IncludeExceptionDetailInFaults=True来设置返回具体的异常信息,这样就能告诉客户端服务出错了,并指出错误出在哪里。在程序开发阶段或者有些应用场合,客户端是受信任的,WCF异常为了让客户端能更详尽的了解服务端到底出了什么问题。

WCF异常也支持发送详细的错误消息给客户端,这更有利于应用程序调试。而返回详细异常有两种方法:***种:通过在服务端的配置文件中设置:,第二种方式为通过在代码中指定:[ServiceBehavior(IncludeExceptionDetailInFaults=true)]

在WCF异常中,还支持更详细的异常消息,它通过自定义的异常消息FaultMessage来传达更多的内容。WCF采用通用的Soap Fault来处理异常,并提供了FaultException和FaultException两个类型来描述和操作异常。

通讯异常,这通常是因为链路的原因,比如服务没有启动,网络阻塞等。这类异常是CommunicationException或者其派生类
2) 状态异常,这类异常通常是与上文提到的实例模式相关的,当访问了一个已经销毁的服务器对象时便会引发此类型的异常,它们通常是ObjectDisposedException
3) 服务异常,由服务端根据具体的业务逻辑触发,通常是FaultException 值得注意的是当抛出服务异常的时候,不同的实例模式的处理方式有所不同:

PerSession:这种模式下,抛出异常,服务实例将销毁,客户端抛出FaultException,客户端代理对象无法继续使用 PerCall:这种模式下,抛出异常,服务实例也将销毁。客户端代理对象无法继续使用 Single:这种模式下,抛出异常,服务实例会照旧运行。客户端代理无法继续使用。

名称栏目:对WCF异常解决办法
本文网址:http://www.mswzjz.com/qtweb/news34/184934.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联