大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“如何利用WCF实现将服务器端的错误信息返回”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用WCF实现将服务器端的错误信息返回”吧!
为江油等地区用户提供了全套网页设计制作服务,及江油网站建设行业解决方案。主营业务为网站制作、网站设计、江油网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
最近在园子里转看到有人对如题的实现有疑问,今天有时间就写了项目把实现简单的讲解一下,如果你是牛逼人物那就绕道吧,哥不想浪费你的时间,现在开始:
默认WCF是不允许将服务器的异常信息返回到客户端的(主要是客户端不一定能够识别clr的异常信息),如果你有这方面的需求可以通过SOAP的Fault包的形式返回异常信息,首先要做的就是设置配置文件,将默认不允许返回错误信息的设置改成如下:
然后定义承载信息的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
到此服务器端的实现完成。
下边看客户端的实现
配置文件不需要特殊设置,调用函数,抓取异常,代码如下:
try
{
returnthis.Channel.Return();
}
catch(FaultException
{
thrownewException(exception.Detail.Message);
}
catch(FaultException
{
thrownewException(exception.Detail.Message);
}
FaultException
FaultException
注意这里获取异常的信息的方法是exception.Detail.Message,而不是Message。
原文链接:http://www.cnblogs.com/Ref-tian/archive/2011/12/21/2295602.html
到此,相信大家对“如何利用WCF实现将服务器端的错误信息返回”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!