2008-11-05 48 views
0

我已閱讀關於構建自定義ErrorHandler(通過從IErrorHandler繼承)的幾個文檔。不幸的是,我對如何做這件事有幾點懷疑。WCF ErrorHandler

問題是我不完全理解IErorrHandler的兩個方法(即ProvideFault和HandleError)的含義。 對我來說,HandleError用於處理異步邏輯(例如登錄)。但是,在這種情況下,爲什麼這個方法返回一個布爾值? 我也認爲可以使用其他方法來確定是否應將錯誤傳播到客戶端或其他位置。

我錯了嗎?

回答

2

根據MSDN documentation,布爾值將返回執行所需行爲的成功或失敗。

你是正確的,因爲ProviderFault方法是你控制返回給客戶端的東西的地方。

我強烈建議閱讀鏈接的MSDN文檔,它提供了一些很好的見解。

5

我已經實現了一個處理程序在HandleError()中執行異常日誌記錄,並在ProvideFault()中執行Exception-to-Fault轉換。這一段時間對我來說工作得很好。

但是,我已經停止使用IErrorHandler,因爲我發現它不會被解僱所有異常。我相信這是一個System.Security.SecurityException,通過這個不會被這個代碼抓住。這就像WCF特有的功能一樣,只是直接傳遞給客戶端。這讓我有點緊張,因爲我開始想知道在這個所謂的全能界面中我還沒有捕捉到什麼。

+0

我遇到了相同的問題(SecurityException未捕獲)。你有沒有找到一種方法來捕捉這些異常? – MvdD 2015-05-01 21:56:58

相關問題