Windows 服务未启动失败,错误 1053(服务未及时响应启动或控制请求。)

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

我在 C# 中使用 Windows 和 Visual Studio (2022) 编码,使用 .Net Core 创建 Windows 服务 该代码由 Visual Studio 生成并由其构建。 它确实创建了两个文件,一个名为 Program.cs 有此内容

IHost host = Host.CreateDefaultBuilder(args)                 
    .ConfigureServices(services =>
    {
        services.AddHostedService< Worker>();
    })
    .Build();

await host.RunAsync();

Worker.cs我已经修改为最少,但即使是原始的也无法启动

public class Worker : BackgroundService

    {
        static int i = 0;
        private readonly ILogger<Worker> _logger;

        private void writefile(string  textf)
        {
            string path = $"C:\\Temp\\{textf}.txt";

            using (StreamWriter sw = File.CreateText(path))
            {
                sw.WriteLine(textf);
            }
        }
        public Worker(ILogger<Worker> logger)
        {
            writefile("Worker");
            _logger = logger;
        }
        public override Task StartAsync(CancellationToken cancellationToken)
        {
            writefile("StartAsync");

            return base.StartAsync(cancellationToken);
        }
        public override Task StopAsync(CancellationToken cancellationToken)
        {

            writefile("StopAsync");

            return base.StopAsync(cancellationToken);
        }

        //ExecuteAsync is left empty
        protected override  Task ExecuteAsync(CancellationToken stoppingToken)
        {
            writefile($"ExecuteAsync{i++}");
            return Task.CompletedTask;
        }
}

上面的代码确实创建了预期的文件(我添加了此代码来跟踪问题)

当代码构建时,我使用命令提示符安装服务 sc create MyService binPath="c:\Visual Studio in\debug\myservice.exe"

.exe所在的目录有所有.dll,我也尝试过Release版本,但出现同样的错误。

事件查看器不显示任何其他信息,但显示相同的错误。

我也尝试使用自己的帐户作为该服务的启动帐户,结果相同

我还尝试将服务的超时(注册表)(\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicePipeTimeout & \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\myservice\StartTimeout)更改为更大的值,但它们只是被忽略并且总是使用 30 秒。

有什么想法吗?谢谢

c# .net-core timeout windows-services visual-studio-2022
1个回答
0
投票

尝试删除程序中的await。

参见“重写程序类”部分:

https://learn.microsoft.com/en-us/dotnet/core/extensions/windows-service?pivots=dotnet-7-0

© www.soinside.com 2019 - 2024. All rights reserved.