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