2009-08-18 33 views
0

好吧,我讓自己有點困惑。我有一個調用另一個WCF服務(服務B)的WCF服務(服務A)。當我在服務B上拋出異常時,例如throw new Exception("test")則服務A沒有得到異常,而是在響應消息中將IsFault設置爲真,例如,WCF IsFault和FaultException

responseMessage = forwardingChannel.Process(message) 
if (responseMessage.IsFault) { 
    // Yes, there is a fault 
} 

我預計我可以在Process方法中加入try-catch並接收異常。有人能向我解釋這裏發生了什麼嗎?

感謝

回答

1

,服務A是一個Java服務,你會期望從調用服務B獲得的.NET異常回來?

默認情況下,WCF服務中未處理的異常將作爲錯誤返回。如果該服務使用SOAP,那麼將作爲SOAP Fault返回。在一個正常的WCF客戶端中,這將被轉換爲FaultException。

+0

好的,謝謝你的回覆,但是如何將SOAP Fault轉換成FaultException?爲什麼不會自動發生在我的WCF服務上,而是會在客戶端上執行? 再次感謝 – 2009-08-20 09:01:47

+0

如果您在客戶端使用添加服務引用,那麼服務_will_返回的SOAP Fault將被轉換爲FaultException。 – 2009-08-20 13:40:34

+0

是的,但是在中介服務的情況下,您不會以同樣的方式提供參考,那麼您如何翻譯它?謝謝 – 2009-08-21 12:35:11

相關問題