Не удалось запустить службу Windows, ошибка 1064 - PullRequest
0 голосов
/ 19 ноября 2018

Я написал Windows Service для работы на Win10, и она работала прекрасно, пока я не решил немного ее изменить. Я переписал некоторую логику, протестировал ее в конфигурациях Debug и Release, и все было хорошо. Затем я удалил текущую версию службы, используя installutil.exe /u %servicename.exe%, и заново установил ее, используя installutil.exe %servicename.exe%. По какой-то причине эта новая версия не может запуститься и вылетает с ошибкой 1064. Это полный текст ошибки:

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

В последний раз, когда я устанавливал этот сервис, я столкнулся с некоторыми трудностями, но быстро исправил их, изменив свойства Log On. На этот раз это не работает. Пожалуйста, помогите с этой проблемой.

Спасибо.

Обновление 1

Вот мои Main() и 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.");
}

Обновление 2

Дополнительный код:

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

Я использую Newtonsoft.JSON для десериализации файла конфигурации JSON, Serilog для ведения журнала, System.Timers.Timer для периодических событий, AtlassianSDK для Jira API и некоторые оболочки над Salesforce CLI для Salesforce.

Ответы [ 2 ]

0 голосов
/ 19 июля 2019

Благодаря комментарию @Siderite Zackwehdex мне удалось найти полную трассировку стека базового исключения в EventViewer в:

Журналы Windows \ Приложение

В моем случае мой сервис называется «HttpDispatcher», который отображается в столбце «Источник» на верхней панели.

Я сразу понял, что это произошло из-за проблемы с зависимостями, когда мой проект .NET 4.7.2не тянул через мои ссылки .NET Standard.( Этот старый каштан ).

Event Viewer: Windows Logs/Application

0 голосов
/ 15 мая 2019

У меня была точно такая же ошибка 1064 при запуске моего сервиса.Для меня пользователь, у которого была зарегистрирована служба, не был действительным пользователем в базе данных.После добавления это работало отлично.

...