4

我有一个 WCF 服务,它的所有操作返回类型都是 OperationStatus:

[DataContract]
public abstract class ServiceResponse
{
    [DataMember]
    public bool Success { get; set; }

    [DataMember]
    public String StatusReason { get; set; }

}

我想创建一个 ErrorHandler 来捕获所有异常,然后我希望它返回到 ServiceReponse 类的客户端实例,其中属性 Success 设置为 false,StatusReason 设置为“INTERNAL SERROR”。

至于现在,我有自己的类实现 IErrorHandler,但我不想使用 FaultContract - 我只想返回 StatusReason 类型的客户端常规对象。这可以做到吗?

4

3 回答 3

4

你确实需要一个错误合约,为了发送一个原因,试试这个:

   MyException fault = new MyException("Error message");
   throw new FaultException<MyException>(fault, new FaultReason("Reason Text"));
于 2009-11-27T18:17:42.590 回答
2

这是一篇关于在 WCF 中处理异常的好文章

于 2009-11-27T18:19:14.350 回答
2

你可以添加

 <serviceDebug includeExceptionDetailInFaults="true"/>

对于您的服务行为部分,但它对于生产环境来说并不是最好的。

于 2009-11-30T15:58:23.037 回答