title: Custom error pages on asp.net MVC3
body: <p>I'm developing a MVC3 base website and I am looking for a solution for handling errors and Render custom Views for each kind of error. So imagine that I have a "Error" Controller where his main action is "Index" (generic error page) and this controller will have a couple more actions for the errors that may appear to the user like "Handle500" or "HandleActionNotFound".</p>
  
  <p>So every error that may happen on the website may be handled by this "Error" Controller (examples: "Controller" or "Action" not found, 500, 404, dbException, etc).</p>
  
  <p>I am using Sitemap file to define website paths (and not route).</p>
  
  <p><strong>This question was already answered, this is a reply to Gweebz</strong></p>
  
  <p>My final applicaiton_error method is the following: </p>
  
  <pre><code>protected void Application_Error() {
  //while my project is running in debug mode
  if (HttpContext.Current.IsDebuggingEnabled &amp;&amp; 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");
      }
  }
  }
  </code></pre>