Проблема с установкой службы Windows - PullRequest
7 голосов
/ 28 января 2011

У меня проблема с установкой службы Windows.Я много раз устанавливал и удалял службу (installutil ..... installutil / u) без каких-либо проблем, но что-то пошло не так, и теперь, когда я пытаюсь установить, я получаю сообщение об ошибке, указанное ниже.Я проверил консоль управления компьютером, и служба CIMediator не появляется в списке служб.Как удалить службу?

System.ArgumentException: исходный код CIMediator уже существует на локальном компьютере.

Ответы [ 2 ]

15 голосов
/ 07 марта 2013

Только что решил ту же проблему, также после многочисленных удалений / установок / перезагрузок.У меня есть собственная реализация установщика службы (производная от [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 \ 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

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

1 2

0 голосов
/ 28 января 2011

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

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

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

...