web-dev-qa-db-fra.com

Impossible de démarrer le service Windows, erreur 1064

J'ai écrit un service Windows pour fonctionner sur Win10, et cela a parfaitement fonctionné jusqu'à ce que je décide de le changer un peu. J'ai réécrit de la logique, l'ai testée dans les configurations de débogage et de version, et tout allait bien. J'ai ensuite désinstallé la version actuelle du service à l'aide de installutil.exe /u %servicename.exe% Et l'ai réinstallée à nouveau à l'aide de installutil.exe %servicename.exe%. Pour une raison quelconque, cette nouvelle version ne peut pas démarrer et elle se bloque avec l'erreur 1064. Voici le texte d'erreur complet:

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

La dernière fois que j'ai installé ce service, j'ai rencontré quelques difficultés, mais je les ai rapidement corrigées en modifiant les propriétés Log On. Cette fois, cela ne fonctionne pas. Veuillez aider avec ce problème.

Merci.

mise à jour 1

Voici mes méthodes de service Main() et OnStart():

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.");
}

mise à jour 2

Plus de 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);
}

J'utilise Newtonsoft.JSON Pour désérialiser un fichier de configuration JSON, Serilog pour la journalisation, System.Timers.Timer Pour les événements périodiques, AtlassianSDK pour l'API Jira et certains wrappers sur Salesforce CLI Pour Salesforce.

10
semptra

J'ai eu exactement la même erreur 1064 lors du démarrage de mon service. Pour moi, l'utilisateur auquel j'ai fait enregistrer le service n'était pas un utilisateur valide dans la base de données. Une fois ajouté, cela a très bien fonctionné.

0
Elmer