Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF-捕获服务器上的故障并返回自定义类型_Wcf_Exception Handling - Fatal编程技术网

WCF-捕获服务器上的故障并返回自定义类型

WCF-捕获服务器上的故障并返回自定义类型,wcf,exception-handling,Wcf,Exception Handling,我们正试图找到一种方法来修改WCF服务行为以捕获所有异常,它将使用异常数据填充自定义返回对象,并返回异常数据,而不是将错误返回给客户端。到目前为止,我们运气不太好。我发现这个例子: 但是,它不会像我们希望的那样返回自定义类型。还有什么其他选择 谢谢 我在另一个答案中提到了这篇文章,但它也可能对您有所帮助。。 这篇文章是如果您想拥有一个可互操作且“按标准”的服务,您应该始终从您的服务向客户端返回FaultExceptionSOAP故障 由于该类型采用泛型,因此基本上可以将任何内容放入该类型中以报

我们正试图找到一种方法来修改WCF服务行为以捕获所有异常,它将使用异常数据填充自定义返回对象,并返回异常数据,而不是将错误返回给客户端。到目前为止,我们运气不太好。我发现这个例子:

但是,它不会像我们希望的那样返回自定义类型。还有什么其他选择


谢谢

我在另一个答案中提到了这篇文章,但它也可能对您有所帮助。。


这篇文章是

如果您想拥有一个可互操作且“按标准”的服务,您应该始终从您的服务向客户端返回
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使用。

您所说的“自定义返回对象”是什么意思?