2014-02-19 172 views
1

我開發了一個用於與數據庫通信的WCF服務。我從我的WPF應用程序中使用此服務來訪問數據庫。將來,我們也計劃擁有一個Web客戶端。目前,我們將服務作爲Windows服務託管在服務器中。WCF服務異常處理

我在這裏的問題是,如果在服務器意味着任何異常,我想通知客戶端的異常。另外,我不希望這個服務被殺死。我如何實現這一目標?

例如:如果數據庫脫機,當服務嘗試訪問該數據庫時,它會引發異常。我沒有使用try catch處理這些異常。這些類型的未處理的異常導致我的WCF服務關閉。

+1

你可以發佈一些代碼來展示當你拋出異常時你如何停止你的服務嗎? – MattC

回答

1

你不要做任何事情。如果發生異常,服務器不會被終止。客戶端將收到異常。

如果需要,可以使用IErrorHandler接口添加錯誤處理,並且應該使用錯誤合約,以便客戶端知道他們是否得到預期的或意外的錯誤。在這裏看到更多的細節:http://msdn.microsoft.com/en-us/library/gg281715%28v=vs.110%29.aspx

+0

fejesjoco:我將服務作爲Windows服務託管,如果發生異常,服務將停止。 – petchirajan

+0

那麼這不是WCF的錯,而是別的。 WCF捕獲服務中的異常,所以它不可能是原因。 – fejesjoco

+0

fejesjoco:我在使用Try..Catch的服務中處理異常,並從catch塊中拋出FaultException來通知客戶端。謝謝你的幫助。 – petchirajan