Czy zdarzenie global.asax Application_Error nie jest uruchamiane, jeśli włączone są niestandardowe błędy?
Jeśli masz ustawione niestandardowe błędyRemoteOnly
w konfiguracji sieci - czy to oznacza, że wystąpiło zdarzenie błędu poziomu aplikacji MVCglobal.asax
- Application_Error
nie został zwolniony przy błędzie?
Właśnie zauważyłem, że gdy wystąpi pewien błąd w mojej aplikacji i zdalnie przeglądam witrynę, 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.
jest to niestandardowe ustawienie konfiguracji błędów:
<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>
EDYTOWAĆ
Po prostu nie interesujący dla ludzi - skończyłem całkowicie wyłączając błędy niestandardowe i zajmując się przekierowaniem wApplication_Error
w ten sposób:
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);
}
}