2012-10-21 29 views
0

我已经编写了一个windows服务,它覆盖ISenesLogon2的登录和注销方法,以检查登录和注销时何时发生,然后将日志信息插入服务器计算机上的sql服务器。处理超时或失败的服务依赖关系

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

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

我认为这是因为在winservice试图访问它之前,sql服务器没有完全加载。

所以我想找到一种方法来检查编程方式,如果SQL服务器准备好,然后尝试使用?

回答

1

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

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

在合理的时间内不能可靠地启动的事情不应该是服务,否则应该尽快失败。否则,最终会有很多支持请求让您的服务超时。

服务通常也不会与用户交互,所以失败会更糟,因为您无法直接告诉用户您不在,除非您执行托盘图标。

+0

Thanx,所以你的意思是我不是一个好主意,使用Windows服务来保存用户日志?你最喜欢哪种方式? –

+1

您可以使用服务,但是如果后端服务器出现故障,您应该有一个排队日志消息的策略,直到其备份完成。否则,由于超时尝试与SQL服务器交谈,您的服务将不会响应。 –