捕获Windows服务C#中的所有异常

时间:2011-03-27 11:28:29

标签: .net windows-services clr c#-2.0

有没有办法可以在Windows服务中捕获所有类型的异常。这就像我有一项服务,我应该继续运行,现在如果一些连接数据库或第三方服务器死了片刻,我不希望我的服务停止。我希望定时器应该提供异常,并且在服务器运行一段时间之后它们应该正在工作但是现在异常将导致我的窗口服务。

PS - 我已经阅读了abt unhandles异常处理程序,但我不确定是否会停止获取服务崩溃。我也尝试使用catch块来捕获泛型异常(已用事件处理程序)。

2 个答案:

答案 0 :(得分:5)

不,没有。您可以使用UnhandledException事件在应用程序崩溃之前生成调试信息。

但是创建自己的异常处理应该不那么难。所有服务都有一个入口点(Service.OnStart),您可以在其中启动自己的线程/计时器。使用try / catch包装该线程/计时器中的所有代码。这应该抓住所有例外。

但有一个例外。代码中创建的任何线程/计时器仍可能导致应用程序崩溃。你必须用try / catch包装所有的定时器/线程回调。

答案 1 :(得分:0)

您好我的应用程序正在吞噬异常,因为它发生在.net framewroek 1.1中,下面是我在app.config文件中添加的设置。

<configuration> 
 <runtime> 
  <legacyUnhandledExceptionPolicy enabled="1" /> 
  </runtime> 
</configuration>