in ASPNET Core

BackgroundService e ASPNET Core 6

In .NET Core 6.0 è stato modificato il comportamento di default nell’esecuzione di background services.

In particolare, l’impostazione di default in caso in cui si verifichi un eccezione all’interno dell’hosted service, stoppa l’app che lo ospita.

Questo tipo di comportamento è per molte situazioni corretto, ma ci si potrebbe trovare in particolari situazioni in cui non sia possibile avere un down del servizio.

Per ovviare si può aggiungere la seguente parte di codice all’interno del Program.cs dell’applicazione edi impostare il comportamento a Ignore.

Host.CreateDefaultBuilder(args).ConfigureServices(services =>
{
    services.Configure<HostOptions>(hostOptions =>
    {
        hostOptions.BackgroundServiceExceptionBehavior = BackgroundServiceExceptionBehavior.Ignore;
    });
});

Questa particolare configurazione consente di modificare il comportamento di default, in caso di problemi nel background service.

In questo caso, anche con eccezioni nel codice del background service, l’app non verrà terminata.