我在安装
Windows服务时遇到问题.我安装和卸载了多次服务(installutil ….. installutil / u)没有任何问题,但出现了问题,现在当我尝试安装时,我收到下面列出的错误消息.我检查了计算机管理控制台,服务CIMediator没有出现在服务列表中.如何删除该服务?
System.ArgumentException:源CIMediator已存在于本地计算机上.
刚解决了同样的问题,也是经过多次卸载/安装/重启后.
我有自己的服务安装程序实现(派生自[System.Configuration.Install.Installer] [1]),我已经指定了应用程序EventLog如下:
我有自己的服务安装程序实现(派生自[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并仅选中Keys.您的服务名称应在以下位置多次显示为密钥
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
尝试删除这些键.它对我有用.