Delen via


Middleware: Uitzonderingshandler Middleware genereert een oorspronkelijke uitzondering als handler niet is gevonden

Voor ASP.NET Core 5.0 voert de Uitzonderingshandler Middleware de geconfigureerde uitzonderingshandler uit wanneer een uitzondering optreedt. Als de uitzonderingshandler, geconfigureerd via ExceptionHandlingPath, niet kan worden gevonden, wordt er een HTTP 404-antwoord geproduceerd. Het antwoord is misleidend omdat het:

  • Het lijkt een gebruikersfout te zijn.
  • Verdoezelt het feit dat er een uitzondering op de server is opgetreden.

Om de misleidende fout in ASP.NET Core 5.0 te verhelpen, genereert de ExceptionHandlerMiddleware oorspronkelijke uitzondering als de uitzonderingshandler niet kan worden gevonden. Als gevolg hiervan wordt een HTTP 500-antwoord geproduceerd door de server. Het antwoord is gemakkelijker te onderzoeken in de serverlogs bij het opsporen van de fout die is opgetreden.

Zie GitHub-issue dotnet/aspnetcore#25288 voor discussie.

Geïntroduceerde versie

5.0 RC 1

Oud gedrag

De Exception Handler Middleware produceert een HTTP 404-antwoord als de geconfigureerde uitzonderingshandler niet kan worden gevonden.

Nieuw gedrag

De Middleware van de uitzonderingshandler genereert de oorspronkelijke uitzondering als de geconfigureerde uitzonderingshandler niet kan worden gevonden.

Reden voor wijziging

De HTTP 404-fout maakt het niet duidelijk dat er een uitzondering is opgetreden op de server. Deze wijziging produceert een HTTP 500-fout om het duidelijk te maken dat:

  • Het probleem wordt niet veroorzaakt door een gebruikersfout.
  • Er is een fout opgetreden op de server.

Er zijn geen API-wijzigingen. Alle bestaande apps blijven compileren en uitvoeren. De uitzondering die is opgetreden, wordt verwerkt door de server. De uitzondering wordt bijvoorbeeld geconverteerd naar een HTTP 500-foutreactie door Kestrel of HTTP.sys.

Betreffende API's

Geen