Windows服务赢得';t安装:指定的服务已存在

本文关键字:服务 存在 安装 Windows | 更新日期: 2023-09-27 18:26:40

我正在用C#编写一个小型服务,我已经安装和卸载了它几次,但突然之间它就不会再安装了。我试着卸载它,它说没有什么可以卸载的,但当我再次安装它时,我得到了以下消息:

错误1001:指定的服务已经存在

现在,我尝试了以下解决方案:

  • 关闭服务经理(因为开放式服务经理可能持有处理)

  • 尝试使用SC QUERY查找它,而delete正在使用SC delete(根据服务已经存在(当它显然不存在时)

  • 尝试在regedit中删除它(不存在)

  • 我已经正确地将项目输出添加到Custom Actions(安装,提交、回滚、卸载)

  • 重新启动计算机(!)

我没什么主意了。绝对没有证据表明该服务安装在我的电脑上,尽管成千上万的开发人员似乎遇到过这个问题(我以前也遇到过),但我从未听说过任何标准解决方案都不起作用的情况。

我可能错过了什么?

编辑

我已经进入regedit,我再次尝试查找我的服务,但这次我导出了HKEY_LOCAL_MACHINE''SYSTEM''CurrentControlSet''Services''部分并进行了搜索。我可以在转储中的下找到我的服务

HKEY_LOCAL_MACHINE''SYSTEM''CurrentControlSet''Services''MyService

但我在regedit视图中转到那里,它不在那里。有什么建议吗?我是怎么搞砸的:?

重新编辑

忽略编辑,服务只显示在regedit中,而install i显示错误消息,但更奇怪的是,服务已安装,然后中断并回滚。。。

Windows服务赢得';t安装:指定的服务已存在

作为临时解决方案,您可以稍微更改服务名称(例如,在service_name中添加或删除一个或两个字符),但保持display_name不变。

我建议查看和Sysinternals Process Monitor活动,并反向查找报告错误之前发生的情况。例如,您可能会看到某个注册表项被访问。

我遇到了类似的问题(服务处于停止状态,然后被一个过于热心的磁盘空间清理器删除),为了解决这个问题,我将新服务复制到"可执行文件路径"框中标记的相同位置,然后启动服务。

到目前为止没有任何问题。