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