我有一个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的客户端常规对象。可以这样做吗?
答案 0 :(得分:4)
你确实需要一个错误合同,为了发送一个理由,试试这个:
MyException fault = new MyException("Error message");
throw new FaultException<MyException>(fault, new FaultReason("Reason Text"));
答案 1 :(得分:2)
答案 2 :(得分:2)
你可以添加
<serviceDebug includeExceptionDetailInFaults="true"/>
对于您的服务行为部分,但它对于生产环境来说并不是最好的。