安装了新的Windows服务,无法启动:“系统错误2 …系统找不到指定的文件”

前端之家收集整理的这篇文章主要介绍了安装了新的Windows服务,无法启动:“系统错误2 …系统找不到指定的文件”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经成功安装了其他几个自定义的.Net窗口服务.我最近写的一个新的非常类似于其他的,当它安装没有错误 – 启动它与服务控制器,它无法从错误对话框开始:系统错误2 …系统找不到指定的文件.

经过时间和惊慌之后,我可以想到的唯一的事情就是这个服务有很大不同,因为路径和可执行文件名称比任何其他服务长至少10个字符.在缩短路径和.exe名称并重新安装时,服务运行正常:无错误!我只能假设我以前的路径或服务或.exe名称太长.

此外,提到我使用了一些借用的“服务驱动程序”代码,用于通过win API调用来处理服务控制器的安装/卸载.这可能是该服务驱动程序模块中隐藏的字符限制.

我找不到任何与Windows相关的文档,以确认是否有系统限制字符限制我已经超过的路径或服务名称.如果时间允许,我会挖到服务驱动程序,看看是否是问题.同时我也欢迎任何见解.

我尝试了一些测试服务,发现不是导致我的问题的任何属性的长度(“系统错误2 …系统找不到指定的文件”)开始.我的内置服务安装程序使用三个属性:ServiceName,ServiceTitle,ServiceDescription.在安装时,我发现它将完整的服务路径写入注册表,但它不仅仅是使用实际的exe(程序集)名称,它使用ServiceName属性来构建路径!我的问题是ServiceName和程序集名称不匹配,因此找不到文件.我使用了一个powershell注册查询来暴露路径,最后注意到那里的不匹配.当我第一次注意到这个问题,我没有注意到,当我缩短了服务名称时,我使用的是没有.exe的程序集名称,这实际上是修复它,而不是简单地缩短服务名称.
原文链接:https://www.f2er.com/windows/371434.html

猜你在找的Windows相关文章