服务未启动

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

这不是this post的副本,因为我已经在其中尝试了推荐的解决方案。

我一直在尝试将C#/。netCore 3.0 / Kestrel作为服务启动。

[努力使我的应用程序作为服务启动后,我按照这些instructions创建了一个新的exe,结果相同。

发布,添加服务并尝试从cmd,powershell或服务接口启动服务后,系统提示我以下消息:

Windows无法在本地计算机上启动SomeWorker服务。错误1053:服务未响应启动或控制及时提出要求。

在调查系统事件日志时,我只看到一个通用的:

myWorker服务由于以下错误而无法启动:服务未及时响应启动或控制请求。

当我运行exe /控制台时,它可以正常启动,没有任何问题。

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureLogging(
                options => options.AddFilter<EventLogLoggerProvider>(level => level >= LogLevel.Information))
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>()
                    .Configure<EventLogSettings>(config =>
                    {
                        config.LogName = "Sample Service";
                        config.SourceName = "Sample Service Source";
                    });
            }).UseWindowsService();
}


public class Worker : BackgroundService
{
    private readonly ILogger<Worker> _logger;

    public Worker(ILogger<Worker> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
            await Task.Delay(1000, stoppingToken);
        }
    }
}
c# service core kestrel
1个回答
0
投票

问题是未将Visual Studio设置为自包含地部署服务。

在项目的属性中设置完之后,一切正常。

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