如何防止服务在Error上停止

时间:2014-06-26 08:47:02

标签: asp.net c#-4.0 windows-services

我写了一个Windows服务,它在一些timeintervalls上轮询数据并将它们写入数据库。 但是如果在写入数据库时​​出现错误,则服务停止。 我想要一个强大的解决方案,即使发生错误也会继续。

我在onStart,OnStop和Dispose中为服务完成的每个操作都设置了try / catch块,但无论如何它都已经完成了。

是尝试/捕捉正确的方法吗? 我必须把它放在哪里? 在Main方法中放入try / catch会有帮助吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试在TransactionScope中包装您的调用,这将回滚您尝试进行的任何失败的更改,并且不应在失败时中断。

using (var scope = new TransactionScope())
   {
      DeleteStuff();
      UpdateStuff();
      scope.Complete();
   }