2011-05-24 140 views
7

我有點麻煩從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); 
} 

此代碼將導致合同不匹配錯誤的客戶端。任何人都可以幫助我找到問題嗎?

+0

問題可能是別的地方,可你把一個破發點中ProvideFault看看 – 2011-11-22 11:45:19

回答

3

指定您需要返回(例如,創建一個UserMismatchFault類)是什麼類型的故障,然後把它就像這樣:

throw new FaultException<UserMismatchFault>(myFault); 
2

什麼是faultNamespaceCreateMessage的第三個參數應爲動作(faultException.Action)。另外請不要忘記,您的Fault類必須有效DataContract - 如果默認序列化成員必須是public