我正在尝试实施真正痛苦的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
返回给他们。
我错过了一些明显的东西吗?
提前致谢
答案 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。