ミドルウェア:ハンドラーが見つからない場合、例外ハンドラー ミドルウェアから元の例外がスローされる
ASP.NET Core 5.0 より前では、例外が発生したときに、Exception Handler Middleware によって構成済みの例外ハンドラーが実行されます。 ExceptionHandlingPath で構成された例外ハンドラーが見つからない場合は、HTTP 404 応答が生成されます。 この応答は、次のような誤解を招きます。
- ユーザー エラーのように見える。
- サーバーで例外が発生したという事実がわからなくなる。
ASP.NET Core 5.0 のこの誤解を招くエラーに対処するために、例外ハンドラーが見つからない場合、ExceptionHandlerMiddleware
からは元の例外がスローされます。 その結果、サーバーによって HTTP 500 応答が生成されます。 この応答であれば、発生したエラーをデバッグするときにサーバー ログで簡単に調べることができます。
ディスカッションについては、GitHub イシュー dotnet/aspnetcore#25288 を参照してください。
導入されたバージョン
5.0 RC 1
以前の動作
構成された例外ハンドラーが見つからない場合は、Exception Handler Middleware によって HTTP 404 応答が生成されます。
新しい動作
構成された例外ハンドラーが見つからない場合は、Exception Handler Middleware からは元の例外がスローされます。
変更理由
HTTP 404 エラーを受け取っても、サーバーで例外が発生したことが明らかにはなりません。 この変更により、HTTP 500 エラーが生成され、次のことが明らかになります。
- 問題の原因はユーザー エラーではない。
- サーバー上で例外が発生した。
推奨アクション
API の変更はありません。 既存のすべてのアプリは引き続きコンパイルされ、実行されます。 スローされた例外は、サーバーによって処理されます。 たとえば、例外は Kestrel または HTTP.sys によって HTTP 500 エラー応答に変換されます。
影響を受ける API
なし
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示