Windows服务中未处理的异常

时间:2009-08-01 20:21:51

标签: c# .net exception

我在Windows服务应用程序(c#)中使用system.timer并添加了:

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += 
       new UnhandledExceptionEventHandler(MyExceptionHandler);

要处理我的异常,这是否适用于Windows服务,因为它似乎不起作用? 有没有人有其他想法?

2 个答案:

答案 0 :(得分:4)

此机制可用于捕获包括Windows服务在内的任何环境中的未处理异常。但是,以这种方式处理什么样的异常存在一些限制。例如,StackOverFlowException可能未处理,但它的性质是你永远不会看到它通过UnhandledException处理程序。

为什么你认为这不起作用?您是否尝试使用调试器附加到该过程,启用第一次机会异常并查看发生了什么?

答案 1 :(得分:1)

为什么服务中有未处理的异常?什么例外?有些例外有"special behavior"and another link here for .NET 4 changes to corrupted state exceptions)。

另外,你想在处理程序中做什么?也许您在处理程序中尝试执行的操作在作为服务运行时受到限制。