2011-10-05 118 views
1

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

我可以预见的主要问题是我们的Exchange服务器出于任何原因关闭或失去互联网连接。两年可能发生几次的问题。

目前,如果关于连接问题引发异常,我会一直尝试在每30秒钟超时时间内连接每个n分钟。因此,假设我们的Exchange服务器停机2小时(计划维护或意外事件),则服务会尝试重新连接每个分钟,直到连接完成。

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

我想避免的是我的服务关闭,因为Exchange有问题让我不得不手动重新启动Windows服务。

谢谢。

回答

1

您的策略听起来像是唯一实用的。

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