返回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 );
}
代码导致客户端中的合同不匹配错误。谁能帮我找出问题所在吗?     

解决方法

指定您需要返回的故障类型(例如,创建UserMismatchFault类),然后将其抛出,如下所示:
throw new FaultException<UserMismatchFault>(myFault);
    ,创建自定义故障合同的步骤 http://bloggingabout.net/blogs/jpsmit/archive/2007/03/21/wcf-fault-contracts.aspx     ,
faultNamespace
是什么?
CreateMessage
的第三个参数应该是动作(
faultException.Action
)。同样不要忘记,您的
Fault
类必须是有效的
DataContract
-在默认序列化成员必须为be8ѭ的情况下。     ,希望Code Project上的这个例子可以为您