从WCF中的providDefault()方法发送自定义响应
我正在使用IErrorHandler捕获异常,以便在我的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
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);