我們的WCF服務偶爾產生一個工作線程來處理客戶端不關心的事情。工作線程不會將任何狀態報告給客戶端。事實上,在線程完成時,服務可能已經將結果返回給客戶端。處理WCF中的線程異常
最近這些後臺線程之一導致了一個異常。異常未處理,所以IIS崩潰。
我可以修復這個特殊的異常,但將來有人可能會添加一些導致另一個意外異常的代碼。我想在未來防止這種崩潰。
我知道System.Windows.Forms應用程序可以通過執行Application.ThreadException
來處理線程異常。有什麼類似的,我可以做一個WCF服務?或者,如果Application.ThreadException
是要走的路,我將如何將它與WCF服務掛鉤?
AppDomain.UnhandledException
的MSDN文檔說它不能防止崩潰。文檔ServiceModel.AsynchronousThreadExceptionHandler
表明它僅適用於WCF線程。
至少,我想在崩潰之前從異常中抓取堆棧跟蹤,但避免將來的崩潰完全是理想的。
再一次,讓我強調這不是我想作爲WCF故障返回給客戶端的異常。
請說的downvote的原因。如果不知道他們有什麼問題,答案不會有所改善。 – 2009-07-10 17:10:15
我同意這一點...如果你有一個預期的例外,你應該接近它的起源。如果它意外,它應該允許應用程序崩潰。 – 2009-07-10 18:10:20