Windows服务无法安装:指定的服务已存在

时间:2012-03-05 19:06:04

标签: c# service

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

  

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

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

  • 关闭服务管理器(因为开放服务管理器可能会持有 处理它)

  • 尝试使用SC QUERY找到它,删除使用SC DELETE (根据 Service already exists (when it clearly doesn't)

  • 试图在注册表中删除它(在那里不存在)

  • 我已正确将项目输出添加到自定义操作(安装, 提交,回滚,卸载)

  • 重新启动计算机(!)

我的想法已经不多了。绝对没有证据表明该服务是安装在我的计算机上的,即使成千上万的开发人员似乎已经遇到过这个问题(我以前也曾经有过这个问题),我从来没有听说过没有标准解决方案的情况实际上是有效的。

我可以错过什么?

修改

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

  

HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\为MyService

但是后来我在regedit视图中去了,它不存在。有什么建议?我怎么搞砸了??

RE-修改

忽略编辑,该服务仅显示在regedit中,而安装我显示错误消息,但是事件更奇怪,服务已安装,然后中断和回滚......

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我建议查看和Sysinternals Process Monitor活动并向后试图查找报告错误之前发生的事情。您可能会看到例如访问了某个注册密钥。

答案 2 :(得分:0)

我遇到了类似的问题(服务处于停止状态,然后被过度热心的磁盘空间整理删除)并解决它我将我的新服务复制到“可执行路径”框中标记的相同位置,然后开始服务。

到目前为止没有问题。