2012-04-23 116 views
0

是否有從WCF服務中引發既作爲RESTful服務又作爲SOAP服務的異常的好方法?從我迄今爲止收集到的信息來看,SOAP服務應該拋出FaultExceptions,並且RESTful服務應該拋出WebProtocolException,以便在客戶端輕鬆地獲取錯誤細節。就我而言,通過2個端點 - RESTful和SOAP公開了相同的服務。我應該使用什麼樣的異常處理機制,以便將錯誤細節輕鬆傳遞給RESTful客戶端和SOAP客戶端?作爲REST和SOAP服務公開的WCF服務的異常處理

+0

如果你還在項目的早期決定,我會建議不要使用相同的服務來肥皂和休息。這些是兩個不同層次的抽象。爲休息使用asp.net http api – 2012-04-23 20:52:40

+0

看到這個http://stackoverflow.com/questions/10288976/should-i-wrap-all-my-wcf-service-code-in-a-try-catch-block – userGS 2012-04-24 06:36:25

回答

1

SOAP和REST是公開服務功能的兩種不同機制,異常在SOAP和REST中公開的方式也有所不同,正如您詳細說明的那樣。

基於HTTP的REST或REST是一種架構模式,它將HTTP作爲協議。例外在應用程序應該得到翻譯成HTTP錯誤代碼,例如40倍,50倍等。例如

  • 400,用於請求問題
  • 401用於錯誤未經授權的訪問
  • 500,你的請求的執行期間發生。

錯誤的詳細信息可以與響應正文中的錯誤代碼一起返回。

使用RESTful端點的客戶端應該期待HTTP錯誤代碼,並且應該處理它們。