ASP.NET 核心辅助角色 Windows 服务 - 错误 1053:服务未及时响应启动或控制请求

ASP.NET Core Worker Windows Service - Error 1053: The service did not respond to the start or control request in a timely fashion

提问人:Ayobamilaye 提问时间:10/24/2023 最后编辑:Petter HesselbergAyobamilaye 更新时间:10/24/2023 访问量:52

问:

我开发 ASP.NET Core-6 Worker Windows 服务并部署了它。

程序.cs:

static void Main(string[] args)
{
    IConfiguration configuration = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .Build()

    Log.Logger = new LoggerConfiguration()
        .ReadFrom.Configuration(configuration)
        .CreateLogger();

    var host = Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureServices((hostContext, services) =>
        {
            services.AddDIServices(configuration);
            services.AddHostedService<Worker>();

            // Register RabbitMQ connection
            services.AddSingleton<IConnection>(sp =>
            {
                var factory = new ConnectionFactory
                {
                    UserName = configuration["RabbitMQ:RMQUsername"],
                    Password = configuration["RabbitMQ:RMQPassword"],
                    HostName = configuration["RabbitMQ:RMQHost"],
                    Port = int.Parse(configuration["RabbitMQ:RMQPort"])
                };
                return factory.CreateConnection();
            });
        })
        .UseSerilog()
        .Build();
    host.Run();
}
}

我发布了项目,并将文件复制到了 Release 文件夹中。

然后我做到了:

sc 创建您的服务名称 binPath= “C:\Path\To\Published\Directory\YourWorkerService.exe”

然后:

sc 启动 YourServiceName

我收到此错误:

错误 1053:服务未及时响应启动或控制请求

请帮助解决这个问题。

C# ASP.Net-Core Windows 服务 辅助角色

评论

1赞 Denis Micheal 10/24/2023
EventViewer 中记录了什么应用程序错误?
0赞 Brando Zhang 10/25/2023
如果直接在已发布的目录中运行已发布的 dll 或 exe,会发生什么情况?您是否收到任何错误消息?另外,如果您在其他服务器上运行,您仍然面临相同的错误?

答:

1赞 D A 10/24/2023 #1

你的命令不够好:

sc create YourServiceName binPath= "C:\Path\To\Published\Directory\YourWorkerService.exe" type= own start= auto depend= +TDI NetBIOS

start=auto 选项指示计算机启动新的“YourWorkerService”服务 计算机启动时自动。depend= +TDI NetBIOS 选项 告诉计算机它依赖于 TDI 组和 NetBIOS 服务。

PS:选项与其值之间需要空格(例如,type= own。如果省略空格,则操作将失败。

评论

0赞 Ayobamilaye 10/24/2023
当我跟随你的脚步,并决定开始它时。我仍然收到相同的错误:Windows无法在本地计算机上启动。然后: 错误 1053:服务未及时响应启动或控制请求
0赞 D A 10/24/2023
您是否卸载了以前的版本?执行此操作并重试该命令。如果不起作用,则可能是代码中的其他内容正在崩溃。
0赞 Ayobamilaye 10/24/2023
是的,我删除了旧的