Проблема с установкой службы Windows
У меня проблема с установкой службы Windows. Я много раз устанавливал и удалял службу (installutil..... installutil /u) без каких-либо проблем, но что-то пошло не так, и теперь, когда я пытаюсь установить, я получаю сообщение об ошибке, указанное ниже. Я проверил консоль управления компьютером, и служба CIMediator не появляется в списке служб. Как мне удалить сервис?
System.ArgumentException: исходный CIMediator уже существует на локальном компьютере.
2 ответа
Просто решил ту же проблему, также после многочисленных удалений / установок / перезагрузок. У меня есть собственная реализация установщика службы (производная от [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 и оставьте только ключи отмеченными. Название вашей службы должно появляться в качестве ключа несколько раз в следующих местах
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ услуги \ EventLog \ CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ услуги \ CIMediator,
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ CIMediator,
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ CIMediator
Попробуйте удалить эти ключи. Это сработало для меня.
Проверьте, есть ли ключ в реестре.
HKLM \ System \ CurrentControlSet \ Services \ CIMediator (возможно, если ключ не определен по-другому)
Если это так, экспортируйте ключ в файл.reg, а затем удалите его.