免责声明:错误消息是从瑞典语翻译而来的(很难找到准确对应的英文错误消息,Microsoft 请注意...) 错误消息也可能是“找不到路径”或“找不到路径”。由于瑞典语消息未将路径包含在“”中,因此有点不清楚。
这类似于这个问题,但不完全是: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(不变)
最佳答案
对于后代来说,51k 建议的延迟启动似乎有效。我不知道为什么这会有什么不同,但只要它有效,我就很高兴。
关于c++ - Windows 服务启动失败 "Path ' .' not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296381/