2016-11-03 6 views
-1

J'ai créé un service Windows que j'essaie de déployer sur le serveur.Une exception s'est produite dans le gestionnaire d'événement OnAfterInstall du programme d'installation.

En essayant de l'installer en utilisant l'invite de commande, avec le rôle d'administrateur.

Installer:

[RunInstaller(true)] 
public partial class ProjectInstaller : System.Configuration.Install.Installer 
{ 
    public ProjectInstaller() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnAfterInstall(IDictionary savedState) 
    { 
     base.OnAfterInstall(savedState); 

     //The following code starts the services after it is installed. 
     using (System.ServiceProcess.ServiceController serviceController = new System.ServiceProcess.ServiceController(serviceInstaller1.ServiceName)) 
     { 
      serviceController.Start(); 
     } 
    } 

    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e) 
    { 
     //this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem; 
    } 

    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e) 
    { 

    } 
} 

Et il jette erreur,

error in CMD

une exception a eu lieu dans le gestionnaire d'événements onafterinstall

et aussi,

System.InvaldiOperationException: Impossible de démarrer le service sur l'ordinateur. etc.

Des solutions rapides?
Articles similaires: Post-1, Post-2

+0

Votre remplacement de la méthode OnStart() est borken, il prend trop de temps. Nous ne pouvons pas le voir d'ici. –

Répondre

1

Ce message d'erreur sur le service « ne répond pas en temps opportun » suggère que votre service est rompu en quelque sorte. Le mécanisme de démarrage n'est pas une conception «fire-and-forget», c'est plutôt un appel dans votre code de démarrage de service. Le service doit quitter son code de démarrage (en temps opportun) pour indiquer qu'il est en cours d'exécution. Il est probable que votre code de démarrage fasse trop de travail en ligne au lieu de simplement effectuer une initialisation de base, puis d'instancier un thread pour effectuer le travail principal du service. Ou ça pend quelque part.

+0

oui, en fait le service est de générer 9-10 fichiers XML, contenant chacun 50000 URL. C'est une opération assez énorme entre les deux! – Vikrant