将多线程Windows服务中的异常写入事件日志

时间:2010-06-12 18:34:09

标签: windows-services exception-handling event-log

我有一个多线程的Windows服务,每24小时左右会无法预料地停止运行一次。我正在写入事件日志,这很好,但是每当服务崩溃时,事件日志中都没有消息(即使服务已停止,尽管AutoLog = true)。是否有办法将未捕获的异常直接写入日志,即使它们不在原始线程中?

1 个答案:

答案 0 :(得分:1)

首先,您生成的线程应该有一个顶级try { } ... catch { }块,它会捕获(并且,如果适当,吞下或重新抛出)异常。除此之外,您可以使用AppDomain.UnhandledException事件来捕获任何未处理的异常并将其注销。