2014-12-01 110 views
3

我正在使用Web服務。例如,當我調用時,某些方法會引發異常,因爲這些參數是無效的值。我想處理這些異常,但它不包含任何數據信息,只包含「錯誤請求」消息。這是我的HTTP響應: enter image description here捕獲SOAP錯誤並處理異常

 try 
     { 
      var data = client.SomeMethod(4); 
     } 
     catch (Exception exception) 
     { 
      // exception.Message = Bad Request 
      // exception don't contains any more data information 
     } 

我如何能捕捉其他信息

回答

1

我假設這是一個WCF Web服務?你正在迎頭趕上一個例外。嘗試使用FaultException<TDetail>

典型部署的服務使用FaultContractAttribute正式指定客戶端在正常操作過程中可能期望接收的所有SOAP錯誤。 FaultContractAttribute中的錯誤信息在到達客戶端應用程序時顯示爲FaultException(其中typeparameter是操作的FaultContractAttribute中指定的可序列化的錯誤對象)。 FaultContractAttribute可用於爲雙向服務方法和異步方法對指定SOAP錯誤。

由於FaultException既是FaultException也是CommunicationException,爲了捕獲指定的SOAP錯誤,請確保在FaultException和CommunicationException類型之前捕獲FaultException類型,或者在其中一個異常處理程序中處理指定的異常。

+0

我不知道FaultException ,但我無法捕獲任何FaultExecption,只有CommunicationException,但是這沒有任何信息。我不創建服務。 – 2014-12-03 16:28:07