我正在用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中,而安装我显示错误消息,但是事件更奇怪,服务已安装,然后中断和回滚......
答案 0 :(得分:2)
作为 临时解决方案,您可以稍微更改服务名称(例如,从service_name添加或删除一个或两个字符)但保持display_name不变
答案 1 :(得分:1)
我建议查看和Sysinternals Process Monitor活动并向后试图查找报告错误之前发生的事情。您可能会看到例如访问了某个注册密钥。
答案 2 :(得分:0)
我遇到了类似的问题(服务处于停止状态,然后被过度热心的磁盘空间整理删除)并解决它我将我的新服务复制到“可执行路径”框中标记的相同位置,然后开始服务。
到目前为止没有问题。