c# - log - Control de error MVC Global: Application_Error no dispara
global asax application_error (3)
Estoy intentando implementar un manejo global de errores en mi aplicación MVC.
Tengo un poco de lógica dentro de mi Application_Error
que redirige a un ErrorController
pero no funciona.
Tengo un punto de quiebre dentro de mi método Application_Error
en Global.aspx
.
Cuando fuerzo una excepción, el punto de quiebre no está siendo golpeado. ¿Alguna idea de por qué?
Puede probar este enfoque para probar:
protected void Application_Error(object sender, EventArgs e)
{
var error = Server.GetLastError();
Server.ClearError();
Response.ContentType = "text/plain";
Response.Write(error ?? (object) "unknown");
Response.End();
}
Web.config
<customErrors mode="Off" />
Creo que una mejor forma de manejar esto sería usar HandleErrorAttribute para decorar tu controlador (quizás un controlador base). Esto le daría la opción de registrar o manejar errores en diferentes controladores con diferentes errores extendiendo este atributo y modificándolo para que se ajuste a sus necesidades, digamos cambiando la vista que se procesa. El uso de este atributo utiliza el procesamiento de filtro estándar en MVC y crea la página utilizando vistas en lugar de escribir directamente en la respuesta como lo haría con Application_Error.
No puedo decir con certeza cuál es el problema, pero puedo pensar en un par de cosas para verificar ... en primer lugar, ¿VS está rompiendo la excepción? Si está en el depurador, este es el valor predeterminado, creo. Si solo toca F5 hasta llegar a su código con el punto de interrupción. Además, ¿está seguro de que no maneja la excepción en ningún lugar antes de que llegue a Application_Error
?
Otra cosa que debe verificarse CustomErrors
modo CustomErrors
en web.config, esto está configurado en Off
, ¿no?