我们编写了一个作为 Windows 服务运行的应用程序。在服务中,我们有一个计时器,每 15 秒触发一次,连接到 ODBC 数据源(例如 MySql、SqlServer)、处理查询并断开连接。我们始终假设连接存在,并在无法建立连接时在代码中使用异常处理。
当与数据库的连接不稳定(即网络连接不良,或者只是数据库关闭)时,我发现我们的服务有时会在任意时间点被 Windows 关闭。
所以我的问题是:如果 Windows 检测到它不断发出失败的请求并抛出异常,它是否有某种机制来停止服务?(在我们的例子中是连接数据库的失败尝试)。几乎就像在说“好吧 - 你每 15 秒发出一次这些请求,它正在消耗资源;所以我要关闭你!
我们的服务始终会尝试建立连接,如果无法建立连接,则
答案1
如果您的应用程序抛出未处理的异常,Windows 将“停止”该服务。