2016-11-03 11 views
-1

Ich habe einen Windows-Dienst erstellt, den ich auf dem Server bereitstellen möchte.Im OnAfterInstall-Ereignishandler des Installationsprogramms ist eine Ausnahme aufgetreten.

Und versuchen, es über die Eingabeaufforderung mit Administratorrolle zu installieren.

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) 
    { 

    } 
} 

Und es wirft Fehler wie

error in CMD

eine Ausnahme in der onafterinstall Ereignishandler aufgetreten

und auch,

System.InvaldiOperationException: Dienst kann nicht auf dem Computer gestartet werden. usw.

Jede schnelle Lösung?
Ähnliche Beiträge: Post-1, Post-2

+0

Ihre OnStart() Methode überschreiben ist Borken, es dauert zu lange. Wir können es von hier aus nicht sehen. –

Antwort

1

Diese Fehlermeldung über den Service „in angemessener Zeit reagiert nicht“ deutet darauf hin, dass Ihr Dienst in irgendeiner Weise gebrochen. Der Start-Mechanismus ist kein Fire-and-Forget-Design, sondern eher ein Aufruf in den Service-Start-Code. Es wird erwartet, dass der Dienst seinen Startcode (zeitnah) verlässt, um anzuzeigen, dass er ausgeführt wird. Es ist wahrscheinlich, dass Ihr Startcode zu viel inline arbeitet, anstatt nur eine grundlegende Initialisierung durchzuführen und dann einen Thread zu instanziieren, um die Hauptarbeit des Dienstes zu leisten. Oder es hängt irgendwo auf.

+0

Ja, der Service besteht darin, 9-10 XML-Dateien mit jeweils 50000 URLs zu generieren. Es ist eine ziemlich große Operation, die es zwischendurch auflegt! – Vikrant

Verwandte Themen