2011-11-18 260 views
0

我開發一個asp.net 2.0 Web服務(的.asmx),現在我的客戶說,自定義異常處理

「沒有可用的故障異常。它包含了唯一的要求和 反應。我們需要處理異常的情況,而我們是 調用web服務,可否請你更新故障 例外WSDL和發回更新WSDL,將我們與 客戶存根進行。

Webservice的反應應該具有下面提到的錯誤代碼如下面提到從WebService失敗的案例:

  Error code: Error Information 
      002   Server Down 
      003  Invalid Input Format 

等 我不知道我怎樣才能使「故障異常」標籤中ASMX WSDL文件&生成更新我的代碼我應該如何拋出這樣的例外。 任何幫助/建議請或請讓我知道如果你需要進一步的解釋。

+0

我喜歡看到一個服務器,它下來響應與'服務器下降' –

回答

0

據我所知,ASP.NET Web服務(ASMX)不支持自定義SOAP錯誤。另一方面,它是considered as legacy technology(由微軟提供) - 在其中開發新服務沒有意義。

使用WCF服務(在所有方面更靈活) - 請參閱this simple tutorial以開始使用WCF。

回到你的問題,WCF支持自定義SOAP故障(在WCF術語中稱爲故障契約) - 請參閱this simple tutorial將故障契約添加到WCF服務。

+0

不幸的是客戶端服務器支持.net只有2.0,這就是爲什麼我必須使用asmx。 – SaQiB

+1

@SaQiB,唯一的建議是,您可能應該嘗試教育並說服客戶從.NET 2.0升級(主流支持在2011年4月結束)。此外,.NET 3.0和3.5的運行時版本在2.0版本中保持不變 - 因此升級是相當無風險的。從本質上講,在3.5中只有對核心庫的錯誤修復,除非你的代碼利用了這些錯誤,否則你將是安全的! – VinayC

+0

+1您的評論。是的,我已經告訴客戶升級是必要的:-),直到我開始在wcf中開發這個web服務。如果我在這個解決方案中遇到任何問題,我會回來 – SaQiB

1

您應該添加有異常信息FaultContract屬性,以你的方法頭

+0

謝謝,它有點幫助,但看起來像這是在.net框架4.0不是2.0?我對嗎。 – SaQiB

+0

支持:4,3.5,3.0 –

+0

但我需要2.0中的解決方案:-( – SaQiB