ASP.Net Core BackgroundService отменен без причины

Я разработал BackgroundService, вначале он работает нормально. Но позже, через 20 минут, это отменяется по какой-то причине, которую я не знаю. В частности, в этом случае «задание» должно быть бесконечным и никогда не заканчиваться. Пожалуйста, не могли бы вы дать некоторое представление? я буду признателен

public class CheckItemsService : BackgroundService
{
    private IConfiguration Configuration { get; }

    public CheckItemsService(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        stoppingToken.Register(() => Log.Information("Job is stopping"));

        while (!stoppingToken.IsCancellationRequested)
        {
            await UpdateItems();

            await Task.Delay(1000 * 60, stoppingToken);
        }
    }

    private async Task UpdateItems()
    {
        var optionsBuilder = new DbContextOptionsBuilder<WalletContext>();
        optionsBuilder.UseSqlServer(Configuration.GetSection("ConnectionStrings:Default").Value);
        DbContext _context = new DbContext(optionsBuilder.Options);

        var items = await _context.EntityX.ToListAsync();

        foreach (var item in items)
        {
            item.ModificationDate = DateTime.Now;
        }

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateException dbEx)
        {
            Log.Information(dbEx.Message);
        }
    }
}

person Roger Ospina    schedule 17.08.2019    source источник
comment
Вызывается ли StopAsync(CancellationToken), переопределите этот метод и запишите его в журнал, если это так. Если это так, это означает, что хост отключается по какой-то причине.   -  person Scott Chamberlain    schedule 18.08.2019
comment
Например, если вы размещаете это на IIS, это может быть время простоя пула приложений по умолчанию, которое приводит к его отключению, поскольку оно не будет учитывать вашу фоновую службу.   -  person Vidmantas Blazevicius    schedule 18.08.2019


Ответы (1)


@Scott Chamberlain Спасибо, чувак, на основании твоего комментария ты дал мне идею поиска причины отключения хоста, поэтому я понял, что IIS имеет конфигурацию по умолчанию для «бездействия» на каждом сайте в течение 20 минут. Я изменил это, и это работает отлично. @Vidmantas Blazevicius Большое спасибо, человек, действительно, это было причиной моей проблемы. Благодарю за вашу помощь.

Ссылка, где я нахожу решение конфигурации в IIS → Как запретить IIS закрывать веб-сайт, когда он не используется?

person Roger Ospina    schedule 18.08.2019