2012-08-24 13 views
9

Se gli errori personalizzati sono impostati su RemoteOnly nella configurazione Web, ciò significa che l'evento di errore a livello di applicazione di MVC in global.asax - Application_Error non viene generato per errore?L'evento Global.asax Application_Error non viene attivato se gli errori personalizzati sono attivati?

Ho appena notato che quando si verifica un determinato errore nella mia applicazione e sto visualizzando il sito da remoto, non viene registrato alcun errore. Tuttavia, quando accedo all'app sul server e si verifica lo stesso errore, l'errore viene registrato.

questo è l'errori personalizzati impostazione 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> 

EDIT

solo per interesse per la gente - ho finito per spegnendo completamente gli errori personalizzati e si occupano di reindirizzamento in Application_Error in questo 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); 
    } 
} 

risposta

13

Se non si chiama Server.ClearError o si intercetta l'errore nel Page_Error o Application_Error gestore di eventi, l'errore viene gestito in base alle impostazioni nella sezione del file Web.config.

Vedere this SO question per ulteriori informazioni

Problemi correlati