我已经成功安装了其他几个自定义的 .Net Windows 服务。我最近写的一个新的与其他的非常相似,虽然它安装没有错误 - 在使用服务控制器启动它时,它无法以错误对话框启动:系统错误 2 ...系统找不到指定的文件。
经过时间和惊愕之后,我唯一能想到的与此服务显着不同的是路径和可执行文件名称至少比我的任何其他服务长 10 个字符。在缩短路径和 .exe 名称并重新安装时,服务运行良好:没有错误!我只能假设我以前的路径或服务或 .exe 名称太长。
另外,值得一提的是,我使用了一些借用的内置到我的 exe 中的“服务驱动程序”代码来处理通过 win API 调用将服务安装/卸载到服务控制器。可能是该服务驱动程序模块中隐藏了字符限制。
我找不到任何与 Windows 相关的文档来确认我已超出的路径或服务名称是否存在系统绑定字符限制。当时间允许时,我会深入研究服务驱动程序,看看这是否是问题所在。同时,我欢迎任何见解。