温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用WCF实现将服务器端的错误信息返回

发布时间:2021-07-21 21:38:29 来源:亿速云 阅读:214 作者:chen 栏目:编程语言

本篇内容主要讲解“如何利用WCF实现将服务器端的错误信息返回”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用WCF实现将服务器端的错误信息返回”吧!

最近在园子里转看到有人对如题的实现有疑问,今天有时间就写了项目把实现简单的讲解一下,如果你是牛逼人物那就绕道吧,哥不想浪费你的时间,现在开始:

默认WCF是不允许将服务器的异常信息返回到客户端的(主要是客户端不一定能够识别clr的异常信息),如果你有这方面的需求可以通过SOAP的Fault包的形式返回异常信息,首先要做的就是设置配置文件,将默认不允许返回错误信息的设置改成如下:

<behaviors>

<serviceBehaviors>

<behavior name="Bhc">

<serviceMetadata httpGetEnabled="true"/>

<serviceDebug includeExceptionDetailInFaults="true"/><!--如此設置會將服務器端得錯誤返回到客戶端,實際的發佈中需要將此項目設置成false-->

</behavior>

</serviceBehaviors>

</behaviors>

然后定义承载信息的DataContract

[DataContract]

publicclassErro

{

[DataMember]

publicstringMessage

{

get;set;

}

}

上边的代码 就不用介绍了 就是一个数据合同

//服務契約定義了可以遠程調用的對象和方法//定義服務契約

[XmlSerializerFormat]//定義序列化的方式

[ServiceContract(SessionMode = SessionMode.Allowed)]//SessionMode = SessionMode.Allowed:設置此屬性意味著可以使用會話Binding

publicinterfaceIActionMain

{

//定義操作契約

[DataContractFormat]//定義序列化的方式

[OperationContract]

stringGetName(stringpInc);

[FaultContract(typeof(ErroInfo.Erro))]//如果有異常就返回下面定義的數據契約的結構數據

[FaultContract(typeof(DivideByZeroException))]

[OperationContract]

DataCollection Return();

}

在方法中定义属性,这里有两种实现

1.使用自定义的错误类型

[FaultContract(typeof(ErroInfo.Erro))]//如果有異常就返回下面定義的數據契約的結構數據

2.使用系统的异常类型 [FaultContract(typeof(DivideByZeroException))]

在契约实现类中将异常抛出

thrownewFaultException<DivideByZeroException>(newDivideByZeroException("這個是自定義的異常!"));

到此服务器端的实现完成。

下边看客户端的实现

配置文件不需要特殊设置,调用函数,抓取异常,代码如下:

try

{

returnthis.Channel.Return();

}

catch(FaultException<ErroInfo.Erro> exception)

{

thrownewException(exception.Detail.Message);

}

catch(FaultException<DivideByZeroException> exception)

{

thrownewException(exception.Detail.Message);

}

FaultException<ErroInfo.Erro> exception:这个抓取的是定义的异常类型。

FaultException<DivideByZeroException> exception:这个抓取的是系统异常类型

注意这里获取异常的信息的方法是exception.Detail.Message,而不是Message。

如何利用WCF实现将服务器端的错误信息返回

原文链接:http://www.cnblogs.com/Ref-tian/archive/2011/12/21/2295602.html

到此,相信大家对“如何利用WCF实现将服务器端的错误信息返回”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

wcf
AI