2011-01-28 4 views
7

Je rencontre un problème lors de l'installation d'un service Windows. J'ai installé et désinstallé le service plusieurs fois (installutil ..... installutil/u) sans aucun problème mais quelque chose s'est mal passé et maintenant quand j'essaye d'installer, j'obtiens le message d'erreur énuméré ci-dessous. J'ai vérifié la console de gestion de l'ordinateur, et le service CIMediator n'apparaît pas dans la liste des services. Comment puis-je supprimer le service? System.ArgumentException: Source CIMediator existe déjà sur l'ordinateur local.Problème lors de l'installation du service Windows

Répondre

0

Vérifiez si la clé est toujours présente dans le registre.

HKLM \ System \ CurrentControlSet \ Services \ CIMediator (probablement, à moins que la clé est définie différemment)

Si elle est, exporter la clé dans un fichier .reg, puis supprimez-le.

14

Juste résolu le même problème, également après un nombreux désinstalle/installe/redémarre. Je avoir ma propre mise en œuvre du programme d'installation de service (dérivé de [System.Configuration.Install.Installer] [1]), et je l'ai application spécifiée EventLog comme suit:

public ProjectInstaller() 
    { 
     InitializeComponent(); 

     EventLogInstaller installer = FindInstaller(this.Installers); 
     if (installer != null) 
     { 
      installer.Log = "MyService";     
     } 
    }  

Vous pourriez avoir la même fonction mis en œuvre le manière suivante ([MSDN: EventLog.CreateEventSource méthode] [2]):

if(!EventLog.SourceExists("MySource")) 
{ 
    EventLog.CreateEventSource("MySource", "MyNewLog"); 
} 

Dans mon cas, au cours de certaines des installations EventLog a été succčs créé, mais lors de la désinstallation quelque chose a mal tourné, et EventLog n'a pas été retirée (bien qu'il ne soit pas affiché dans EventViewer, il était encore présent dans registre). Donc l'erreur "MyService existe déjà sur l'ordinateur local", était évidemment une erreur sur EventLog, pas le service lui-même.

Vous pouvez essayer de faire ce qui suit:

Allez dans le menu Démarrer et tapez regedit. Cela va ouvrir l'Éditeur du Registre. Attention, il est toujours recommandé de sauvegarder tout le registre avant de faire quoi que ce soit (Fichier -> Exporter), ou seulement les clés que vous allez éditer/supprimer. Ouvrir Edition -> Rechercher, tapez CIMediator et ne laissez que les clés cochées. Votre nom de service doit apparaître comme des moments clés multiples, sur les emplacements suivants

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

Essayez de supprimer ces clés. Cela a fonctionné pour moi.

1 2

+0

solution parfaite. J'ai trouvé des clés générées dans le registre. Je suis sûr que je ne l'ai pas installé à travers le dossier Project Bin. Je me demande comment a-t-il créé la clé de registre sans l'installer. Cependant, la suppression des clés existantes a résolu mon problème. Je vous remercie. –

Questions connexes