返回WCF自定义错误异常

时间:2011-05-24 13:04:45

标签: wcf

我在从wcf服务返回自定义错误异常时遇到了一些麻烦。与wcf服务通信的客户端应用程序获取 - 合同不匹配错误。 这是我在服务中定义的错误合同:

public partial class Fault
{
    string codeField;
    string messageField;
    string detailsField;
}

服务中的错误我正在创建自定义错误异常,如下所示:

public void ProvideFault(Exception exception, MessageVersion version, ref Message       refMessage)
{
      mynamespace.Fault customFault = new mynamespace.Fault()
      {
           code = "Service Error",
           message = "Error Message",
           details = "Error Message"
      };

      FaultException<mynamespace.Fault> faultexception = new   FaultException<mynamespace.Fault>( customFault );

      MessageFault messageFault = faultexception.CreateMessageFault();

      refMessage = Message.CreateMessage( version, messageFault, faultNamespace );
}

此代码导致客户端中的合同不匹配错误。任何人都可以帮我找到问题吗?

4 个答案:

答案 0 :(得分:3)

指定需要返回的错误类型(例如,创建一个UserMismatchFault类),然后像这样抛出它:

throw new FaultException<UserMismatchFault>(myFault);

答案 1 :(得分:3)

答案 2 :(得分:2)

什么是faultNamespaceCreateMessage的第三个参数应该是操作(faultException.Action)。另外,请不要忘记,Fault类必须有效DataContract - 如果默认序列化,成员必须为public

答案 3 :(得分:2)

希望example on Code Project可以帮助你