我在安装Windows服务时遇到问题。我无数次安装和卸载了该服务(installutil ..... installutil/u),但是出了点问题,现在当我尝试安装时,出现以下错误消息。我检查了计算机管理控制台,并且服务CIMediator没有出现在服务列表中。如何删除服务?
System.ArgumentException:本地计算机上已经存在源CIMediator。
最佳答案
在无数次卸载/安装/重新启动后,也解决了同样的问题。
我有自己的服务安装程序实现(源自[System.Configuration.Install.Installer] [1]),并且指定了应用程序EventLog,如下所示:
public ProjectInstaller()
{
InitializeComponent();
EventLogInstaller installer = FindInstaller(this.Installers);
if (installer != null)
{
installer.Log = "MyService";
}
}
您可能具有通过以下方式实现的相同功能([MSDN:EventLog.CreateEventSource方法] [2]):
if(!EventLog.SourceExists("MySource"))
{
EventLog.CreateEventSource("MySource", "MyNewLog");
}
就我而言,在某些安装过程中成功创建了
EventLog
,但在卸载过程中出了点问题,并且未删除EventLog(尽管它未显示在EventViewer
中,但仍存在于注册表中)。因此,错误“MyService在本地计算机上已经存在”显然是关于EventLog的错误,而不是服务本身的错误。
您可以尝试执行以下操作:
转到“开始”菜单,然后键入
regedit
。这将打开注册表编辑器。请谨慎操作,建议您在执行任何操作(文件->导出)或仅编辑或删除键之前,先备份整个注册表。打开“编辑”->“查找”,键入CIMediator并仅选中“ key ”。您的服务名称应在以下位置多次显示为键
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CIMediator
尝试删除这些键。它为我工作。
1
2
关于windows-services - 安装Windows服务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4824051/