我在安装 Windows 服务时遇到问题。我多次安装和卸载该服务(installutil..... installutil /u)没有任何问题,但出现了问题,现在当我尝试安装时,我收到下面列出的错误消息。我检查了计算机管理控制台,服务 CIMediator 没有出现在服务列表中。如何删除服务?
System.ArgumentException:源 CIMediator 已存在于本地计算机上。
我在安装 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 Method] [2]):
if(!EventLog.SourceExists("MySource"))
{
EventLog.CreateEventSource("MySource", "MyNewLog");
}
就我而言,在某些安装过程EventLog
中成功创建了,但在卸载过程中出现了问题,并且 EventLog 没有被删除(虽然它没有显示在 中EventViewer
,但它仍然存在于注册表中)。所以错误“本地计算机上已经存在 MyService”,显然是关于 EventLog 的错误,而不是服务本身。
您可以尝试执行以下操作:
转到您的开始菜单并键入regedit
。这将打开注册表编辑器。请小心,始终建议在执行任何操作(文件 -> 导出)之前备份整个注册表,或者只备份您将要编辑/删除的键。打开 Edit -> Find ,输入 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
尝试删除这些键。它对我有用。
检查注册表中的密钥是否仍然存在。
HKLM\System\CurrentControlSet\Services\CIMediator (可能,除非密钥定义不同)
如果是,请将密钥导出到 .reg 文件,然后将其删除。