BackgroundService からのハンドルされない例外
以前のバージョンでは、BackgroundService によってハンドルされない例外がスローされると、例外が失われ、サービスが応答しなくなりました。 .NET 6 では、例外をログし、ホストを停止することで、この動作を修正しています。
変更の説明
以前のバージョンの .NET では、BackgroundService.ExecuteAsync(CancellationToken) オーバーライドから例外がスローされると、例外は失われ、サービスは応答しなくなります。 ホストは引き続き実行され、メッセージはログに記録されません。
.NET 6 以降では、
導入されたバージョン
.NET 6
変更理由
この新しい動作は、他のアプリ モデルでハンドルされない例外が発生した場合の動作と一致しています。 また、
推奨アクション
Host.CreateBuilder(args)
.ConfigureServices(services =>
{
services.Configure<HostOptions>(hostOptions =>
{
hostOptions.BackgroundServiceExceptionBehavior = BackgroundServiceExceptionBehavior.Ignore;
});
});
影響を受ける API
.NET