【问题标题】:Windows service fails to start on bootWindows 服务无法在启动时启动
【发布时间】:2011-06-26 00:45:01
【问题描述】:

在我进入正文之前,请注意我已经尝试了以下内容:

  • 设置服务依赖关系
  • 设置延长的超时时间

现在,话虽如此,您可能会猜到我的问题是:我的 Windows 服务无法在启动时启动,但我可以从服务管理器手动启动它。事件日志显示它确实尝试在启动时启动,但未能及时响应。

该服务没有什么特别之处,因为它只访问一个 SOAP 端点,运行一些系统命令,并运行一些 WMI 查询。我已将该服务设置为依赖于 DNS 服务和 WMI 服务,但它仍然无法启动(超时),这告诉我有其他原因使其无法运行。

我正在使用 NSIS SimpleSC 插件注册服务,使用以下选项:

Service Type: SERVICE_WIN32_OWN_PROCESS 
Start Type: SERVICE_AUTO_START 
Dependencies: Winmgmt, Netman, Eventlog, Dnscache
User Name: LocalSystem

我错过了什么?

【问题讨论】:

  • 是否取决于网络适配器/连接?我遇到了一个问题,即我的网络启动不够快,并且似乎停止了服务的启动。
  • Peter,这就是我添加 Dnscache 和 Netman 服务作为依赖项的原因。我在某处读到,他们在网络启动之前不会启动。

标签: soap windows-services wmi nsis wmi-service


【解决方案1】:

尝试在您的服务中使用SetServiceStatus 给它一些时间。请记住,加载顺序很重要。

【讨论】:

  • 好了,关于加载顺序已经说过了,最后启动的最常启用的服务是什么?我解决此问题的唯一其他想法是在 RunServices 中添加一个条目,但这似乎很老套。
【解决方案2】:

原来这个问题的级别低于开始顺序或类似的事情。它与我在服务的构造函数中的一些初始化代码有关。一旦我重构它以将该代码移到构造函数之外,一切都运行良好。

感谢@AljoshaBre 和@Peter K. 的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多