IErrorhandler没有返回客户端

时间:2013-12-04 10:17:08

标签: c# wcf ierrorhandler

我正在尝试实施真正痛苦的IErrorhandler

我已经使用IErrorhandler界面中的provideFault方法,如此...

    public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
    {
        FaultException<ServiceFault> faultException = ServiceMethods.BuildFaultException<ServiceFault>("Provide Fault Error", error.Message);
        MessageFault messageFault = faultException.CreateMessageFault();

        fault = Message.CreateMessage(version, messageFault, faultException.Action);
    }

如果我的服务操作遇到异常,则会进入此方法以创建FaultException。我的问题是客户端没有将FaultException返回给他们。

我错过了一些明显的东西吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

如果您没有看到FaultException<ServiceFault>客户端,请仔细检查您是否错过了服务中的fault contract

[ServiceContract]
public interface IHelloService
{
    [OperationContract]
    [FaultContract(typeof(ServiceFault))]
    void DoWork();
}

答案 1 :(得分:0)

我对WCF有一点经验,但我认为你只是在创建一条消息,而不是通过请求或响应发送消息。 我认为由于这个原因,您的客户端没有收到异常消息。

您是否实施了IErrorHandler界面的方法HandleError

您的问题类似于SO中已经提出的这些问题:

也许他们可以帮助你。

另请阅读MSDN中的this thread