Windows服务在重启后不会自动启动?

我们有一些用.NET编写的Windows服务。 他们可以在服务mmc中手动启动,但是尽pipe设置为自动,但在启动(或重新启动)机器时,它们从不启动。

更新在事件日志中,不是看到“xyz started”,而是所有其他服务启动,我只看到“xyz服务进入停止状态”。 和一个单独的错误,说“在等待来自slsvc服务的事务响应时,超时(30000毫秒)”。

如果我手动启动它们,那么我会按照预期在事件日志中获得一个正常的状态,并且一切正常 – 直到下一个Windows更新补丁强制重新启动,并且所有服务再次closures。

有任何想法吗? 我试过把它们设置为Delayed Start,没有明显的区别。

有一个解决scheme。 请参阅: http : //support.microsoft.com/kb/922918

问题是,一个服务可能需要ldap或另一个远程访问,因此正在经历延迟。 当服务器启动时尤其会发生这种情况。 通过延长延迟,您可以确保服务将开始。

当然,更好的做法是解决为什么这个服务需要很长时间才能启动。 你的环境是否通过了? 在服务被延迟启动的服务中是否存在性能问题?

当你说“我们有一些Windows服务”时,你是什么意思? 这表明他们是由组织内部的人员内部创build的? 如果是这样的话,那么你在这里比其他任何人更好地debugging它们 – 这些服务对Windows组件有什么依赖关系,并且你的程序员是否考虑testing这些服务的可用性,并等待它们在服务启动时联机?

你有没有考虑将这些服务设置为软件许可服务的依赖(这就是slsvc )?

http://support.microsoft.com/kb/193888

要创build新的依赖关系,请select代表要延迟的服务的子项,单击编辑,然后单击添加值。 创build数据types为REG_MULTI_SZ的新值名称“DependOnService”(不带引号),然后单击确定。 出现“数据”对话框时,请在该服务之前键入您希望启动的服务的名称或名称,每行一个条目,然后单击“确定”。

在“数据”对话框中input的服务名称就是在服务registry中显示的服务的确切名称。

计算机启动时,它会使用此条目来validation在尝试启动依赖服务之前启动了此值中列出的服务或服务。

试试这个:

运行以下命令来定义适合您环境的触发事件。 在本例中,该命令确定是否给主机一个IP地址,然后启动或停止服务。

sc triggerinfo w32time start / networkon stop / networkoff

其中w32Time是您的服务名称

或者试试这个

https://support.microsoft.com/en-us/kb/922918