【发布时间】:2011-10-05 13:55:14
【问题描述】:
我目前正在开发 Windows 服务(我的第一个),我想知道如何处理断开连接事件等。本质上,此 Windows 服务会轮询我们的 Exchange 服务器以获取新电子邮件。收到电子邮件后,我们对其进行解析并将其插入数据库。现在,只要一切都对我有利,我就可以一切正常。由于这是不可能维护的,我需要寻找方法来确保我的服务保持在线,无论发生什么超出我的控制(减去托管服务的服务器)。
我可以预见的主要问题是我们的 Exchange 服务器因任何原因而停机或失去互联网连接。两个问题,一年会发生好几次。
目前,如果在连接问题上引发异常,我会继续尝试每 n 分钟连接一次,并设置 30 秒超时。因此,假设我们的 Exchange 服务器出现故障(计划内维护或意外事件) 2 小时,然后该服务将尝试每 n 分钟重新连接一次,直到建立连接。
这是确保我的服务始终在线的可持续策略吗?如果没有,有什么更好的方法?
我想要避免的是我的服务因 Exchange 出现问题而导致我不得不手动重新启动 Windows 服务。
谢谢。
【问题讨论】:
标签: c# service windows-services