处理超时或失败的服务依赖性

时间:2012-10-21 05:39:53

标签: windows-services

我编写了一个Windows服务,它覆盖了ISenesLogon2的Logon和Logoff方法,以便在登录和注销时检出,然后将日志信息插入服务器计算机上的sql server。

但是当我在服务器之后打开客户端计算机时会出现问题。

在这种情况下,我的服务无法插入sql server。

我认为这是因为在winservice尝试访问它之前,sql server没有完全加载。

所以我想找到一种方法,以编程方式检查sql server是否准备就绪然后尝试使用?

1 个答案:

答案 0 :(得分:1)

您的服务无法启动,直到其依赖项远程或以其他方式也已启动。检查SQL Server很简单,尝试连接到它并重试,直到成功。

唯一的问题是服务在启动时会有超时,你无法坐下来无限期地重复这一过程。

在合理的时间范围内无法可靠启动的事情不应该是服务,或者它们应该尽快失败。否则,您最终将获得大量支持服务超时的支持请求。

服务通常也不会与用户互动,因此失败的情况更糟,因为除非您使用托盘图标,否则您无法直接告诉用户您的服务不会。