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.
Rekommenderad åtgärd
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