
При установке службы собственной разработки на Windows Server 2012 R2 система каким-то образом пришла в состояние, когда InstallUtil.exe думает, что служба и существует, и не существует. После команды установки процесс запускается и откатывается с ошибкой:
System.ComponentModel.Win32Exception: Указанная служба уже существует
После того, как InstallUtil.exe дала команду удалить этот самый файл службы, процесс в конечном итоге завершается с ошибкой:
System.ComponentModel.Win32Exception: Указанная служба не существует как установленная служба
Служба действительно существовала до моей попытки удалить и переустановить, хотя я не могу найти никаких ее следов ни в команде Powershell Get-Service, ни в файлах сборки, ни в реестре. Я полагаю, что это было вызвано изменением имени службы в скомпилированном программном обеспечении без полной деинсталляции/переустановки (то есть, просто перезаписью исполняемого файла). Мой вопрос в том, что я могу сделать сейчас, чтобы диагностировать проблему?
решение1
Причина была найдена и определена следующим образом: другой разработчик непреднамеренно добавил в проект второй установщик службы с точно таким же именем службы. (Конечно, он не тестировал это изменение.) Конечный результат попытки установить две службы с точно таким же именем не был отражен ни в одном из журналов Windows или установки, ни в командной строке, когда служба была установлена через командную строку.
Чтобы поставить этот диагноз, я залез в исходный код и сам изменил имя службы. После пересборки и установки в список служб были добавлены две службы.
решение2
В моем случае оказалось, что выбранное мной несколько обобщенное название "Монитор" на самом деле уже существовало. Я придумал более конкретное название, и все заработало.