Это не дубликат этого поста , поскольку я уже пытался найти там рекомендуемые решения.
Я пытался запустить свой C # /. NetCore 3.0 / Kestrel как службы.
Пытаясь заставить мое приложение запускаться как служба, я следовал этим инструкциям , чтобы создать новый exe-файл с тем же результатом.
После публикации и добавив службу и пытаясь запустить службу из cmd, powershell или интерфейса службы, мне предлагается следующее сообщение:
Windows не удалось запустить службу SomeWorker на Локальный компьютер. Ошибка 1053: Служба не ответила на запрос запуска или управления своевременно.
При исследовании журнала системных событий я вижу только обобщенный c:
Служба myWorker не запустилась из-за следующей ошибки: Служба не ответила на запрос запуска или управления своевременно.
Когда я запускаю exe / console, она запускается без проблем.
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);
}
}
}