чистый основной поток не выполняется в IIS - PullRequest
0 голосов
/ 11 октября 2018

Я делаю Net Core 2.0 Application ... В методе startup.cs ConfigureServices я реализую IHostedService для вызова задачи.

     public void ConfigureServices(IServiceCollection services)
            {
             services.AddSingleton<IHostedService, TimedHostedService>();             
}
             
public class TimedHostedService : IHostedService, IDisposable
    {
        //private readonly ILogger _logger;
        private Timer _timer;


        public Task StartAsync(CancellationToken cancellationToken)
        {
            //_logger.LogInformation("Timed Background Service is starting.");

            _timer = new Timer(DoWork, null, TimeSpan.Zero,
                TimeSpan.FromSeconds(2));

            return Task.CompletedTask;
        }

        private void DoWork(object state)
        {
            //go to database

            //_logger.LogInformation("Timed Background Service is working.");
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
          //  _logger.LogInformation("Timed Background Service is stopping.");

            _timer?.Change(Timeout.Infinite, 0);

            return Task.CompletedTask;
        }

        public void Dispose()
        {
            _timer?.Dispose();
        }
    }

Когда я публикую проект и запускаю его из консоли dotnet Project.dll, службы выполняются нормально.Но я запускаю его из IIS, поток никогда не освобождается.

Я прочитал этот пост, но не помогает.

Чего мне не хватает?

Спасибо ...

...