何度もアンインストール/インストール/再起動した後も、同じ問題を解決しました。サービス インストーラー ([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 already exists on the local computer」というエラーは、サービス自体ではなく、明らかに EventLog に関するエラーでした。
次のことを試みることができます。
[スタート] メニューに移動して、「.」と入力しregedit
ます。これにより、レジストリ エディターが開きます。注意してください。何かを行う前にレジストリ全体をバックアップすることを常にお勧めします ([ファイル] -> [エクスポート])、または編集/削除しようとしているキーのみをバックアップすることをお勧めします。Edit -> Find を開き、 CIMediator と入力して Keys のみをチェックしたままにします。次の場所で、サービス名がキーとして複数回表示されるはずです
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