Compartir a través de


Middleware: El middleware de manejo de excepciones lanza la excepción original si no se encuentra el manejador.

Antes de ASP.NET Core 5.0, el middleware del controlador de excepciones ejecuta el controlador de excepciones configurado cuando se ha producido una excepción. Si no se encuentra el controlador de excepciones, configurado a través ExceptionHandlingPathde , se genera una respuesta HTTP 404. La respuesta es engañosa en que:

  • Parece ser un error de usuario.
  • Oculta el hecho de que se produjo una excepción en el servidor.

Para solucionar el error engañoso en ASP.NET Core 5.0, ExceptionHandlerMiddleware produce la excepción original si no se encuentra el controlador de excepciones. Como resultado, el servidor genera una respuesta HTTP 500. La respuesta será más fácil de examinar en los registros del servidor al depurar el error que se produjo.

Para discusión, consulte el tema de GitHub dotnet/aspnetcore#25288.

Versión introducida

5.0 RC 1

Comportamiento anterior

El middleware del controlador de excepciones genera una respuesta HTTP 404 si no se encuentra el controlador de excepciones configurado.

Nuevo comportamiento

El middleware del controlador de excepciones produce la excepción original si no se encuentra el controlador de excepciones configurado.

Motivo del cambio

El error HTTP 404 no hace evidente que se haya producido una excepción en el servidor. Este cambio genera un error HTTP 500 para que sea obvio que:

  • El problema no se debe a un error de usuario.
  • Se encontró una excepción en el servidor.

No hay cambios en la API. Todas las aplicaciones existentes seguirán compilando y ejecutándose. La excepción lanzada es gestionada por el servidor. Por ejemplo, la excepción se convierte en una respuesta de error HTTP 500 por Kestrel o HTTP.sys.

Las APIs afectadas

Ninguno