
Windows Server 2012 R2 に社内開発のサービスをインストールすると、何らかの理由で、InstallUtil.exe がサービスが存在すると認識し、同時に存在しないと認識する状態になります。インストール コマンドを実行すると、プロセスが開始され、次のエラーでロールバックします。
System.ComponentModel.Win32Exception: 指定されたサービスは既に存在します
InstallUtil.exe にそのサービス ファイルのアンインストール コマンドを実行すると、プロセスは最終的に次のエラーで完了します。
System.ComponentModel.Win32Exception: 指定されたサービスはインストールされたサービスとして存在しません
実際、アンインストールして再インストールする前には、このサービスが存在していましたが、Powershell コマンド Get-Service、アセンブリ ファイル、レジストリのいずれにも、このサービスの痕跡は見つかりませんでした。これは、完全なアンインストール/再インストールを行わずに (つまり、実行ファイルを上書きするだけで)、コンパイルされたソフトウェアでサービス名が変更されたことが原因だと思います。私の質問は、問題を診断するために今何ができるのかということです。
答え1
原因が判明し、別の開発者が誤ってプロジェクトにまったく同じサービス名を持つ 2 番目のサービス インストーラーを追加したことが原因であると判明しました (もちろん、開発者はこの変更をテストしていませんでした)。まったく同じ名前を持つ 2 つのサービスをインストールしようとした結果は、Windows ログやインストール ログのいずれにも反映されず、サービスがコマンド ライン経由でインストールされたときのコマンド プロンプトにも反映されませんでした。
この診断を行うために、私はソース コードにアクセスし、サービス名を自分で変更しました。再構築してインストールすると、サービス リストに 2 つのサービスが追加されました。
答え2
私の場合、私が選んだ「モニター」というやや一般的な名前は、実際にはすでに存在していたことが判明しました。私はより具体的な名前を考え出し、すべてがうまくいきました。