.NET Core 作为 Windows 服务和服务启动超时

问题描述 投票:0回答:1

我们正在使用简单的Windows服务

        var host = Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration(cfg =>
        {
            cfg.AddConfiguration(Configuration);
            cfg.Build().BindConfigurations();
        })
        .UseSerilog()
        .UseWindowsService()
        .Build();
    host.Run();

这效果很好。问题是,每当 Windows 重新启动时,我们都会看到计划由于这个原因而无法启动,

A timeout was reached (30000 milliseconds) while waiting for the OurScheduler service to connect. 

我们怎样才能避免这个错误呢?因为这使得我们选择 .NET Core 作为后台作业存在风险。

.net-core windows-services asp.net-core-6.0
1个回答
0
投票

我在任务计划中添加了一个观察程序(

.bat
文件),这将使作业正在运行,如果没有则启动作业,

@echo off
for /f "tokens=*" %%a in ('sc query MyWindowsServiceJobName ^| findstr STATE') do set _CmdResult=%%a
if "%_CmdResult%"=="%_CmdResult:RUNNING=%" (
    SC START MyWindowsServiceJobName
)
© www.soinside.com 2019 - 2024. All rights reserved.