【问题标题】:Windows service reconnection strategiesWindows 服务重连策略
【发布时间】:2011-10-05 13:55:14
【问题描述】:

我目前正在开发 Windows 服务(我的第一个),我想知道如何处理断开连接事件等。本质上,此 Windows 服务会轮询我们的 Exchange 服务器以获取新电子邮件。收到电子邮件后,我们对其进行解析并将其插入数据库。现在,只要一切都对我有利,我就可以一切正常。由于这是不可能维护的,我需要寻找方法来确保我的服务保持在线,无论发生什么超出我的控制(减去托管服务的服务器)。

我可以预见的主要问题是我们的 Exchange 服务器因任何原因而停机或失去互联网连接。两个问题,一年会发生好几次。

目前,如果在连接问题上引发异常,我会继续尝试每 n 分钟连接一次,并设置 30 秒超时。因此,假设我们的 Exchange 服务器出现故障(计划内维护或意外事件) 2 小时,然后该服务将尝试每 n 分钟重新连接一次,直到建立连接。

这是确保我的服务始终在线的可持续策略吗?如果没有,有什么更好的方法?

我想要避免的是我的服务因 Exchange 出现问题而导致我不得不手动重新启动 Windows 服务。

谢谢。

【问题讨论】:

    标签: c# service windows-services


    【解决方案1】:

    你的策略听起来是唯一可行的。

    还值得考虑添加从服务远程查看事件日志的功能,以便您可以诊断当前不知道的问题。如果您真的很偏执,可以使用第二个“观察者”服务定期检查主要服务并报告它是否失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-11
      • 2015-06-21
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 2013-08-05
      相关资源
      最近更新 更多