web-dev-qa-db-de.com

Windows-Dienst konnte nicht gestartet werden, Fehler 1064

Ich habe einen Windows-Dienst für Win10 geschrieben, der einwandfrei funktioniert hat, bis ich mich entschlossen habe, ihn ein wenig zu ändern. Ich habe einige Logik umgeschrieben, sie sowohl in Debug- als auch in Release-Konfigurationen getestet und alles war in Ordnung. Dann habe ich die aktuelle Version des Dienstes mit installutil.exe /u %servicename.exe% Deinstalliert und mit installutil.exe %servicename.exe% Erneut neu installiert. Aus irgendeinem Grund kann diese neue Version nicht gestartet werden und stürzt mit Fehler 1064 ab. Dies ist der vollständige Fehlertext:

Windows could not start %servicename% service on Local Computer. Error 1064: An exception occurred in the service when handling the control request.

Bei der letzten Installation dieses Dienstes stieß ich auf einige Schwierigkeiten, die jedoch schnell behoben wurden, indem die Eigenschaften von Log On Geändert wurden. Dieses Mal funktioniert es nicht. Bitte helfen Sie bei diesem Problem.

Vielen Dank.

pdate 1

Hier sind meine Main() und OnStart() Servicemethoden:

Main()

static void Main()
{
#if DEBUG
    var service = new SalesforceToJiraService();
    service.OnDebug();
    Thread.Sleep(Timeout.Infinite);
#else
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[]
    {
        new SalesforceToJiraService()
    };
     ServiceBase.Run(ServicesToRun);
#endif
}

OnStart()

protected override void OnStart(string[] args)
{
    this.ConfigureServices();

    this.timer.Start();
    this.logger.Information("SalesforceToJira service started.");
}

pdate 2

Mehr Code:

ConfigureServices()

protected void ConfigureServices()
{
    this.configuration = ConfigurationHelper.LoadConfiguration(ConfigurationPath);
    this.logger = ConfigurationHelper.ConfigureLogger(this.configuration.Logs.LogsPath);

    this.timer = ConfigurationHelper.ConfigureTimer(this.configuration.ProcessInterval.TotalMilliseconds,
        (sender, eventArgs) => this.ProcessCasesAsync(sender, eventArgs).GetAwaiter().GetResult());

    this.salesforceClient = new SalesforceCliClient(this.configuration.Salesforce.CliPath);

    this.jiraClient = Jira.CreateRestClient(
        this.configuration.Jira.Url,
        this.configuration.Jira.Username,
        this.configuration.Jira.Password);
}

Ich verwende Newtonsoft.JSON Zum Deserialisieren einer JSON-Konfigurationsdatei, Serilog zum Protokollieren, System.Timers.Timer Für periodische Ereignisse, AtlassianSDK für die Jira-API und einige Wrapper Salesforce CLI Für Salesforce.

10
semptra

Ich hatte genau den gleichen Fehler 1064 beim Starten meines Dienstes. Für mich war der Benutzer, für den ich den Dienst registriert hatte, kein gültiger Benutzer in der Datenbank. Einmal hinzugefügt, hat es super funktioniert.

0
Elmer