2012-08-24 14 views
9

Si tiene errores personalizados establecidos en RemoteOnly en configuración web, ¿significa que el evento de error de nivel de aplicación de MVC en global.asax - Application_Error no se activa por error?¿El evento Application_Error global.asax no se activa si se activan los errores personalizados?

Acabo de notar que cuando ocurre un cierto error en mi aplicación, y estoy viendo el sitio de forma remota, no se registra ningún error. Sin embargo, cuando accedo a la aplicación en el servidor y se produce el mismo error, se registra el error.

este es el error personalizados configuración config:

<customErrors defaultRedirect="/Error/Application" mode="RemoteOnly"> 
    <error statusCode="403" redirect="/error/forbidden"/> 
    <error statusCode="404" redirect="/error/notfound"/> 
    <error statusCode="500" redirect="/error/application"/> 
</customErrors> 

EDITAR

Apenas fuera de interés para las personas - que terminé apagarse completamente errores personalizados y hacer frente a la redirección en Application_Error de este modo:

protected void Application_Error(object sender, EventArgs e) 
{ 
    Exception exception = Server.GetLastError(); 

    // ... log error here 

    var httpEx = exception as HttpException;  

    if (httpEx != null && httpEx.GetHttpCode() == 403) 
    { 
     Response.Redirect("/youraccount/error/forbidden", true); 
    } 
    else if (httpEx != null && httpEx.GetHttpCode() == 404) 
    { 
     Response.Redirect("/youraccount/error/notfound", true); 
    } 
    else 
    { 
     Response.Redirect("/youraccount/error/application", true); 
    } 
} 

Respuesta

13

Si no llama a Server.ClearError o atrapa el error en el Controlador de eventos Page_Error o Application_Error, el error se maneja según la configuración en la sección del archivo Web.config.

Ver this SO question para más información

Cuestiones relacionadas