2008-12-17 112 views

回答

1

使用try-catch并自己调用OnStop;不要依靠“自动停止”,即使它被“保证”,它仍然不是一个好主意。服务应尽可能健壮。

0

如果通过崩溃,你的意思是在你的服务中有一个未处理的异常,那么答案是否定的。OnStop不会被调用。通常该服务将被标记为停止。但是Steven是正确的,每个“根”方法都必须有一个围绕任何可能抛出异常的代码的try-catch块,你的服务不应该有未处理的异常。

0

OnStop()仅在服务实际被告知停止时调用。这不包括例如系统关机,因为有一个单独的方法来覆盖(称为OnShutdown())。

无论你在OnStop()地方应该有可能是,但到一个单一的独立的方法,可以从两个OnStop()OnShutdown()

至于追赶奇意外的异常被调用,我会尝试建议包裹ServiceBase.Run()通话/捕获在捕获克劳斯。这几乎可以保证你在发生异常时进行某种记录。

相关问题