Windows服务无法以“路径”开头。未找到”

时间:2014-03-10 09:30:09

标签: c++ windows service

免责声明:错误消息是从瑞典语翻译过来的(并且很难找到相应的英文错误消息,Microsoft注意到了......) 错误消息也可能是" Path' '找不到"或"未找到路径"。由于瑞典的消息并没有包含在'中的路径,因此有点不清楚。 '

这与此问题类似,但不完全相同:New Windows Service installed, fails to start: "System error 2 ... system cannot find the file specified"

我自己写了这个服务。它是一个用非托管C ++编写的exe,它使用以下外部代码:

  • libntlm - 作为动态库加载(libntlm-0.dll与可执行文件放在同一位置)
  • OpenSSL - 作为静态库加载
  • pugixml - 直接编译成代码

我遇到的问题是它在Windows启动时无法启动,但如果我手动启动它就会启动它! 我很难过可能出错的地方。我唯一能想到的是,如果找不到dll,但我不知道为什么它不会。环境变量的某些东西可能不同吗?

我尝试过:

  • 检查注册表,路径正确
  • 路径是本地磁盘
  • 更改为多个不同路径(无更改)
  • 确保路径中没有空格
  • 在程序开始时记录(没有写入日志,所以它没有找到内部路径错误)
  • Dll在同一路径
  • 设置为以我自己的网络帐户开头(无更改)
  • 尝试将重命名的exe重命名为与服务名称相同(无更改)
  • 尝试用regsrv32注册libntlm-0.dll但是没有用
  • 将libntlm-0.dll放入System32(无更改)

1 个答案:

答案 0 :(得分:1)

对于后人来说,似乎51k建议的延迟开始似乎有效。我不知道为什么会有任何不同,但只要它有效,我就开心。