Ben bir MVC3 temel web sitesi geliştiriyorum ve ben hataları ve hata her türlü özel Görünümler işleme için bir çözüm arıyorum. Bu yüzden, ana eyleminin "Dizin" (genel hata sayfası) olduğu bir "Hata" Denetleyicisine sahip olduğumu ve bu denetleyicinin kullanıcıya "Handle500" veya "HandleActionNotFound" gibi görünebilecek hatalar için birkaç eylemi daha olacağını düşünün.
Bu nedenle, web sitesinde olabilecek her hata bu "Hata" Denetleyicisi tarafından ele alınabilir (örnekler: "Denetleyici" veya "Eylem" bulunamadı, 500, 404, dbException, vb.).
Web sitesi yollarını tanımlamak için Site Haritası dosyası kullanıyorum (rota değil).
Bu soru zaten cevaplandı, bu Gweebz için bir cevap
Son applicaiton_error yöntemim şu şekildedir:
protected void Application_Error() {
//while my project is running in debug mode
if (HttpContext.Current.IsDebuggingEnabled && WebConfigurationManager.AppSettings["EnableCustomErrorPage"].Equals("false"))
{
Log.Logger.Error("unhandled exception: ", Server.GetLastError());
}
else
{
try
{
var exception = Server.GetLastError();
Log.Logger.Error("unhandled exception: ", exception);
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values["controller"] = "Errors";
routeData.Values["action"] = "General";
routeData.Values["exception"] = exception;
IController errorsController = new ErrorsController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
errorsController.Execute(rc);
}
catch (Exception e)
{
//if Error controller failed for same reason, we will display static HTML error page
Log.Logger.Fatal("failed to display error page, fallback to HTML error: ", e);
Response.TransmitFile("~/error.html");
}
}
}