Windows服务重新连接策略

时间:2011-10-05 13:55:15

标签: c# service windows-services

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

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

目前,如果针对连接问题抛出异常,我会继续尝试连接每个 n 分钟,并且30秒超时。因此,假设我们的Exchange服务器停机(计划维护或意外事件)2小时,那么服务将尝试重新连接每个 n 分钟,直到建立连接。

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

我想避免的是我的服务因为Exchange出现问题而导致我必须手动重启Windows服务。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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