次の方法で共有


ミドルウェア: ハンドラーが見つからない場合、例外ハンドラー ミドルウェアから元の例外がスローされる

Core 5.0 ASP.NET 前は、 例外ハンドラー ミドルウェア は、例外が発生したときに構成された例外ハンドラーを実行します。 ExceptionHandlingPath経由で構成された例外ハンドラーが見つからない場合は、HTTP 404 応答が生成されます。 応答は、次のような点で誤解を招きます。

  • ユーザー エラーのようです。
  • サーバーで例外が発生したという事実を隠します。

ASP.NET Core 5.0 の誤解を招くエラーに対処するために、 ExceptionHandlerMiddleware は例外ハンドラーが見つからない場合に元の例外をスローします。 その結果、HTTP 500 応答がサーバーによって生成されます。 応答は、発生したエラーをデバッグするときに、サーバー ログで簡単に確認できます。

詳細については、GitHub の 問題 dotnet/aspnetcore#25288 を参照してください。

導入されたバージョン

5.0 RC 1

以前の動作

構成された例外ハンドラーが見つからない場合、例外ハンドラー ミドルウェアによって HTTP 404 応答が生成されます。

新しい動作

構成された例外ハンドラーが見つからない場合は、Exception Handler Middleware からは元の例外がスローされます。

変更の理由

HTTP 404 エラーでは、サーバーで例外が発生したことを明らかにしません。 この変更により HTTP 500 エラーが発生し、次のことが明らかになります。

  • この問題は、ユーザー エラーが原因ではありません。
  • サーバーで例外が発生しました。

API の変更はありません。 既存のすべてのアプリは、引き続きコンパイルおよび実行されます。 サーバーは発生した例外を処理します。 たとえば、 Kestrel または HTTP.sysによって、例外が HTTP 500 エラー応答に変換されます。

影響を受ける API

無し