加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:20:49 所属栏目:Windows 来源:网络整理
导读:我已经成功安装了其他几个自定义的.Net窗口服务.我最近写的一个新的非常类似于其他的,当它安装没有错误 – 启动它与服务控制器,它无法从错误对话框开始:系统错误2 …系统找不到指定的文件. 经过时间和惊慌之后,我可以想到的唯一的事情就是这个服务有很大不
我已经成功安装了其他几个自定义的.Net窗口服务.我最近写的一个新的非常类似于其他的,当它安装没有错误 – 启动它与服务控制器,它无法从错误对话框开始:系统错误2 …系统找不到指定的文件.

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读