2012-08-24 15 views
9

Jeśli masz błędy niestandardowe ustawione na RemoteOnly w konfiguracji sieci - czy to oznacza, że ​​zdarzenie błędu poziomu aplikacji MVC w global.asax - Application_Error nie zostało wywołane przy błędzie?Czy zdarzenie global.asax Application_Error nie zostało wywołane, jeśli włączone są błędy niestandardowe?

Właśnie zauważyłem, że gdy wystąpi pewien błąd w mojej aplikacji i przeglądam stronę zdalnie, nie jest rejestrowany żaden błąd. Jednak gdy uzyskuję dostęp do aplikacji na serwerze i pojawia się ten sam błąd, błąd jest rejestrowany.

to niestandardowe błędy config ustawienie:

<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

tylko z zainteresowania ludzi - skończyło się całkowicie wyłączyć niestandardowych błędów i radzenia sobie z przekierowaniem w Application_Error tak:

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); 
    } 
} 

Odpowiedz

13

Jeśli nie wywołasz Server.ClearError lub pułapkę błąd w Mechanizm obsługi zdarzeń Page_Error lub Event_Error, błąd jest obsługiwany na podstawie ustawień w sekcji pliku Web.config.

Aby uzyskać więcej informacji, zobacz this SO question

Powiązane problemy