我有一個Web服務方法,我想拋出一些自定義異常,例如SomeException,SomeOtherException等等,然後Web服務會變成客戶端能夠處理的SOAP錯誤。在Java中,我可以在WSDL中的wsdl:operation元素中包含wsdl:fault元素。看起來.NET不適合這種情況,並且沒有辦法在WebMethod上放置屬性來顯示可能發生的SOAP錯誤。.NET 2.0 Web服務被忽略的WSDL故障元素?
如果我創建了一個具有wsdl:fault元素的Java web服務並向.NET項目添加了一個web引用,我會期望wsdl:fault元素可以創建正確命名的異常,就像其他實體一樣創建,但這似乎並不是這樣。
難道WSDL的情況:故障的WSDL元素由.NET完全地被忽略?它們是定義在http://www.w3.org/TR/wsdl處的WSDL規範的一部分,所以這不是我期待的行爲。
如果這是可能的變通可能被返回它包含一個成功/失敗的布爾值和錯誤消息/枚舉結果對象的情況。或者使用SoapExceptions。如果我選擇使用SoapExceptions,那麼我將把這個想法放在我的web服務的用戶上來處理這些問題並正確地反序列化它。這兩種方法似乎都不是處理這種問題的好方法,並添加了額外的問題和代碼來解決此問題。
有什麼建議嗎?
?如果它是瀏覽器中的Silverlight,那麼在處理SOAP錯誤方面存在缺陷。 – sipwiz 2009-04-14 13:45:17
客戶端是一個ASP.NET網站。 – Martin 2009-04-14 13:48:20