没有错误合同的WCF错误处理

时间:2009-11-27 18:10:49

标签: wcf exception ierrorhandler

我有一个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的客户端常规对象。可以这样做吗?

3 个答案:

答案 0 :(得分:4)

你确实需要一个错误合同,为了发送一个理由,试试这个:

   MyException fault = new MyException("Error message");
   throw new FaultException<MyException>(fault, new FaultReason("Reason Text"));

答案 1 :(得分:2)

答案 2 :(得分:2)

你可以添加

 <serviceDebug includeExceptionDetailInFaults="true"/>

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