2012-12-14 85 views
0

我只是在開發我的第一個WCF WebMethod,並且正在查看錯誤處理。WCF FaultExceptions,SOAP故障和非.NET應用程序

在花了一週的時間閱讀了這篇文章之後,普遍認爲WCF WebMethods中的錯誤應該是WebFaultExceptionFaultException。此外,許多教程指出使用FaultException(Of T)可以提供更好的功能。這似乎很簡單...

然後我發現source指出,當WebMethod被非.NET應用程序使用時,拋出CLR異常並不好, Java等,並且應該使用SOAP Fault。

有人可以澄清是否內置WCF 4.5的邏輯自動將FaultExceptionFaultException(Of T)轉換爲可由外部系統處理/理解的SOAP錯誤?

一般來說,其他人如何將錯誤傳達給外部系統?

回答

2

如果使用FaultException(Of T),它將與其他SOAP技術(如Java)互操作。這SO貼子解釋它 - WCF/WebService: Interoperable exception handling。這是我爲Java客戶端做的。讓我知道你是否需要更多細節。

+0

非常棒,謝謝。 我包括對SOAP Fault文檔的參考以供參考:http://www.w3.org/TR/soap12-part0/#L11549 我將使用DataContract屬性定義一個類,然後拋出一個FaultException(Of MyClass)。 這與我在MyClass中放置什麼字段有關係嗎? ErrorCode,ErrorDetail等?還應該有一個特定的名稱,例如與SOAP Fault文檔相匹配的名稱 - >消息和錯誤代碼 – EvilDr

+1

好...您可以將字段命名爲任何您喜歡的字段,並讓它們包含儘可能多或少量的數據,以滿足您的需求。您只需要小心,不要暴露敏感數據,例如服務器名稱,數據庫名稱等。嘗試使命名約定符合行業命名標準始終是一個好主意。祝你好運。 –

+0

非常感謝。在近期內請繼續關注我的更多問題...... :-) – EvilDr