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并仅选中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
原文地址:https://www.jb51.cc/windows/364781.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。