10

Windowsサービスのインストールに問題があります。サービスを何度もインストールおよびアンインストールしましたが(installutil ..... installutil / u)、問題が発生しました。インストールしようとすると、以下のエラーメッセージが表示されます。コンピューターの管理コンソールを確認しましたが、サービスCIMediatorがサービスのリストに表示されません。サービスを削除するにはどうすればよいですか?

System.ArgumentException:ソースCIMediatorはローカルコンピューターに既に存在します。

4

2 に答える 2

19

何度もアンインストール/インストール/再起動した後も、同じ問題を解決しました。サービス インストーラー ([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

于 2013-03-07T09:46:36.230 に答える
0

キーがまだレジストリに存在するかどうかを確認します。

HKLM\System\CurrentControlSet\Services\CIMediator (おそらく、キーが別の方法で定義されていない限り)

存在する場合は、キーを .reg ファイルにエクスポートしてから削除します。

于 2011-01-28T05:39:50.980 に答える