WCF-捕获服务器上的故障并返回自定义类型
我们正试图找到一种方法来修改WCF服务行为以捕获所有异常,它将使用异常数据填充自定义返回对象,并返回异常数据,而不是将错误返回给客户端。到目前为止,我们运气不太好。我发现这个例子: 但是,它不会像我们希望的那样返回自定义类型。还有什么其他选择WCF-捕获服务器上的故障并返回自定义类型,wcf,exception-handling,Wcf,Exception Handling,我们正试图找到一种方法来修改WCF服务行为以捕获所有异常,它将使用异常数据填充自定义返回对象,并返回异常数据,而不是将错误返回给客户端。到目前为止,我们运气不太好。我发现这个例子: 但是,它不会像我们希望的那样返回自定义类型。还有什么其他选择 谢谢 我在另一个答案中提到了这篇文章,但它也可能对您有所帮助。。 这篇文章是如果您想拥有一个可互操作且“按标准”的服务,您应该始终从您的服务向客户端返回FaultExceptionSOAP故障 由于该类型采用泛型,因此基本上可以将任何内容放入该类型中以报
谢谢 我在另一个答案中提到了这篇文章,但它也可能对您有所帮助。。
这篇文章是如果您想拥有一个可互操作且“按标准”的服务,您应该始终从您的服务向客户端返回
FaultException
SOAP故障
由于该类型采用泛型
,因此基本上可以将任何内容放入该类型中以报告错误。该类型需要用[DataContract]修饰,其成员需要用[DataMember]属性传回
[DataContract]
public class MyErrorInfo
{
[DataMember]
public int ErrorCode { get; set; }
[DataMember]
public string ErrorMessage { get; set; }
}
当您在服务端捕获这些执行并返回一个FaultException
(或任何您最终将调用错误类的内容)时,您还需要使用
[FaultContract(typeof(MyErrorInfo))]
[OperationContract]
public SomeType SomeMethodCall(SomeType parameter);
这样,您的客户将能够捕获并处理故障异常。基本上,我们选择返回相同的对象类型,这样我们就可以将单个侦听器委托附加到所有事件(就像用户失去对组织的权限一样)
我没有想过使用FaultException,但我将研究如何使用它。此设计是在SharePoint 2007内部运行的WCF服务(.NET 3.5),由Silverlight 4使用。您所说的“自定义返回对象”是什么意思?