从WCF中的providDefault()方法发送自定义响应

从WCF中的providDefault()方法发送自定义响应,wcf,Wcf,我正在使用IErrorHandler捕获异常,以便在我的WCF服务中进行处理和记录。我在providdefault(…)方法中捕获异常,并从这里向客户端发送错误异常 下面是它的示例代码 public void ProvideFault(Exception error, MessageVersion version, ref Message fault) { FaultException<MyResponse> fe = new FaultException&l

我正在使用IErrorHandler捕获异常,以便在我的WCF服务中进行处理和记录。我在providdefault(…)方法中捕获异常,并从这里向客户端发送错误异常

下面是它的示例代码

public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
    {
        FaultException<MyResponse> fe = new FaultException<MyResponse>(
                                new ErrorResponse
                                {
                                    MessageCode = "ERR001",
                                    MessageDetail = "Error Occured at server Side"
                                });

        MessageFault faultMsg = fe.CreateMessageFault();
        fault = Message.CreateMessage(version, faultMsg, fe.Action);
    }
因此,这可以在客户端处理所有场景。此更改的原因是所有客户端都可能无法处理FaultException

我不想在我的服务中使用try-catch并从catch发送响应,相反,我想使用IErrorHandler。
任何建议都将被高度赞赏。

你有没有考虑过<代码> CreateMessage(MeasAgExchange,String,Object)< /C>?这可能对你有用。我来不及回答这个。。。无论如何,对此我很抱歉。关于这个问题,我认为ProvideFault(..)方法只能返回FaultMessage。我们不能返回正常的响应而不是这个。FaultMessage可能包含作为FaultDetails的自定义响应。。谢谢
MyResponse response = new MyResponse();
response.MessageCode = "ERR001";
response.MessageDetail = "Error Occured at server Side";
Message.CreateMessage(version, response, response.Action);