Как запускаю сервис как BackgroundService?
Хочу запустить BackgroundService как сервис, но все время получаю ошибку:
[SC] StartService: ошибка: 1053:
Служба не ответила на запрос своевременно.
Логи, как я понимаю, еще не успевают писаться. Не понимаю в чем дело
Пытаюсь запустить данный код:
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args).UseWindowsService().ConfigureLogging((hostingContext, config) => { }).UseWindowsService().ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); });
public class Worker : BackgroundService, IDisposable
{
private readonly ILogger<Worker> _logger;
private readonly AppConfig _appConfig;
public Worker(ILogger<Worker> logger = null, AppConfig appConfig = null)
{
_logger = logger;
_appConfig = appConfig;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
//try
//{
// await UpdateClient.StartTasks(_appConfig);
//}catch(Exception e)
//{
// _logger.LogError($"Error: {e.Message}");
//}
await Task.Delay(5000, stoppingToken);// 60000
}
}
}
Запускаю:
sc.exe create "UAService" binpath=*\UAService.exe
sc start "UAService"
Конфиги
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\UpdaterApplication</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PlatformTarget>x64</PlatformTarget>
<PublishSingleFile>True</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
<PublishTrimmed>False</PublishTrimmed>
</PropertyGroup>
</Project>