0

我知道 wcf 方法会引发错误异常,并且客户端应用程序会捕获该错误异常。但是有什么方法可以知道该 wcf 方法是否在客户端引发错误异常?

4

1 回答 1

0

当您创建 WCF 服务时,您可以使用以下[FaultContract]属性装饰您的操作合同:

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [FaultContract(typeof(MyFaultContract))]
    void DoWork();
}

MyFaultContract这会在服务的元数据 (WSDL) 中发出关于此的信息。然后,当您创建客户端代理(使用 VS 中的添加服务引用或直接通过svcutil.exe)时,客户端知道此故障契约,您可以捕获此类异常。

所以这里的想法是看你的操作契约是否被[FaultContract]属性修饰,以了解这个操作可能抛出哪种类型的错误契约。如果它没有定义任何自定义的 FaultContract 属性,则意味着在客户端上您只能捕获非通用版本的 FaultException。

于 2013-10-20T12:06:06.703 回答