Проблема с установкой службы 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

Попробуйте удалить эти ключи. Это сработало для меня.

1 2

Проверьте, есть ли ключ в реестре.

HKLM \ System \ CurrentControlSet \ Services \ CIMediator (возможно, если ключ не определен по-другому)

Если это так, экспортируйте ключ в файл.reg, а затем удалите его.

Другие вопросы по тегам