我写了一个Windows服务,它在一些timeintervalls上轮询数据并将它们写入数据库。 但是如果在写入数据库时出现错误,则服务停止。 我想要一个强大的解决方案,即使发生错误也会继续。
我在onStart,OnStop和Dispose中为服务完成的每个操作都设置了try / catch块,但无论如何它都已经完成了。
是尝试/捕捉正确的方法吗? 我必须把它放在哪里? 在Main方法中放入try / catch会有帮助吗?
非常感谢。
答案 0 :(得分:1)
尝试在TransactionScope中包装您的调用,这将回滚您尝试进行的任何失败的更改,并且不应在失败时中断。
using (var scope = new TransactionScope())
{
DeleteStuff();
UpdateStuff();
scope.Complete();
}