我们的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