Dela via


Mellanprogram: Undantagshanteraren Mellanprogram genererar ursprungligt undantag om hanteraren inte hittas

Innan ASP.NET Core 5.0 kör undantagshanteraren Mellanprogram den konfigurerade undantagshanteraren när ett undantag har inträffat. Om undantagshanteraren, som konfigurerats via ExceptionHandlingPath, inte kan hittas, skapas ett HTTP 404-svar. Svaret är missvisande eftersom det:

  • Verkar vara ett användarfel.
  • Döljer det faktum att ett undantag inträffade på servern.

För att åtgärda det missvisande felet i ASP.NET Core 5.0 genererar det ExceptionHandlerMiddleware ursprungliga undantaget om undantagshanteraren inte kan hittas. Därför skapas ett HTTP 500-svar av servern. Svaret blir lättare att undersöka i serverloggarna när du felsöker felet som inträffade.

Mer information finns i GitHub-problem med dotnet/aspnetcore#25288.

Version introducerad

5.0 RC 1

Gammalt beteende

Undantagshanterarens mellanprogram genererar ett HTTP 404-svar om den konfigurerade undantagshanteraren inte kan hittas.

Nytt beteende

Undantagshanterarens mellanprogram genererar det ursprungliga undantaget om den konfigurerade undantagshanteraren inte kan hittas.

Orsak till ändringen

HTTP 404-felet gör det inte uppenbart att ett undantag inträffade på servern. Den här ändringen genererar ett HTTP 500-fel för att göra det uppenbart att:

  • Problemet orsakas inte av ett användarfel.
  • Ett undantag påträffades på servern.

Det finns inga API-ändringar. Alla befintliga appar fortsätter att kompileras och köras. Undantaget som genereras hanteras av servern. Undantaget konverteras till exempel till ett HTTP 500-felsvar av Kestrel eller HTTP.sys.

Berörda API:er

Ingen