Training
Module
Tolerantie implementeren in een cloudeigen microservice - Training
Deze module begeleidt u bij het implementeren van tolerantie in een .NET-microservices-app in een Kubernetes Service.
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Wanneer in eerdere versies een BackgroundService niet-verwerkte uitzondering wordt gegenereerd, gaat de uitzondering verloren en reageert de service niet meer. .NET 6 lost dit gedrag op door de uitzondering te registreren en de host te stoppen.
In eerdere .NET-versies, wanneer er een uitzondering wordt gegenereerd op basis van een BackgroundService.ExecuteAsync(CancellationToken) onderdrukking, gaat de uitzondering verloren en reageert de service niet meer. De host blijft actief en er wordt geen bericht geregistreerd.
Vanaf .NET 6, wanneer er een uitzondering wordt gegenereerd vanuit een BackgroundService.ExecuteAsync(CancellationToken) onderdrukking, wordt de uitzondering geregistreerd bij de huidige ILogger. De host wordt standaard gestopt wanneer er een niet-verwerkte uitzondering wordt aangetroffen.
.NET 6
Het nieuwe gedrag is consistent met de manier waarop andere app-modellen zich gedragen wanneer er niet-verwerkte uitzonderingen worden aangetroffen. Het is ook verwarrend voor ontwikkelaars wanneer ze BackgroundService een fout tegenkomen, maar er wordt niets geregistreerd. Het beste standaardgedrag is om de host te stoppen, omdat niet-verwerkte uitzonderingen niet mogen worden genegeerd. Ze geven een probleem aan dat aandacht nodig heeft.
Als u liever het vorige gedrag behoudt van het toestaan van een onverwerkte uitzondering in een BackgroundService om de host niet te stoppen, kunt u instellen HostOptions.BackgroundServiceExceptionBehavior op BackgroundServiceExceptionBehavior.Ignore.
Host.CreateBuilder(args)
.ConfigureServices(services =>
{
services.Configure<HostOptions>(hostOptions =>
{
hostOptions.BackgroundServiceExceptionBehavior = BackgroundServiceExceptionBehavior.Ignore;
});
});
Feedback over .NET
.NET is een opensourceproject. Selecteer een koppeling om feedback te geven:
Training
Module
Tolerantie implementeren in een cloudeigen microservice - Training
Deze module begeleidt u bij het implementeren van tolerantie in een .NET-microservices-app in een Kubernetes Service.
Documentatie
Scoped services gebruiken binnen een BackgroundService - .NET
Meer informatie over het gebruik van scoped services binnen een BackgroundService in .NET.