我在Windows服务应用程序(c#)中使用system.timer并添加了:
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(MyExceptionHandler);
要处理我的异常,这是否适用于Windows服务,因为它似乎不起作用? 有没有人有其他想法?
答案 0 :(得分:4)
此机制可用于捕获包括Windows服务在内的任何环境中的未处理异常。但是,以这种方式处理什么样的异常存在一些限制。例如,StackOverFlowException可能未处理,但它的性质是你永远不会看到它通过UnhandledException处理程序。
为什么你认为这不起作用?您是否尝试使用调试器附加到该过程,启用第一次机会异常并查看发生了什么?
答案 1 :(得分:1)
为什么服务中有未处理的异常?什么是例外?有些例外有"special behavior"(and another link here for .NET 4 changes to corrupted state exceptions)。
另外,你想在处理程序中做什么?也许您在处理程序中尝试执行的操作在作为服务运行时受到限制。