0

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

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

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

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

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

4

1 回答 1

1

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

唯一的问题是服务在启动时会超时,你不能坐下来无限期地重复这个。

不能在合理的时间范围内可靠地启动的事情不应该是服务,或者它们应该尽快失败。否则,您最终会收到大量关于服务超时的支持请求。

服务通常也不是与用户交互的,所以失败更糟,因为除非你做一个托盘图标,否则你不能直接告诉用户你没有启动。

于 2012-10-21T05:56:01.307 回答