ASP.net MVC4/MVC5 错误处理及设置

很无聊的记录下。首先IIS 7以上的版本测试才成功

首先

//全局ErrorHandler  
  public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());

            filters.Add(new VcodeFilterAttribute());
        }

然后MVC web.config 设置如下

<!-- 放到system.webServer -->
  <httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404"/>
      <remove statusCode="500"/>
      <error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL"/>
      <error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL"/>
    </httpErrors>

  确保它是关闭的。

  <customErrors mode="Off" />

 

然后有个ErrorController。

 public class ErrorController : Controller
    {
       
        public ActionResult Error404()
        {
            return View();
        }

        public ActionResult Error500()
        {
            return View();
        }

    }

 

View 中,喜欢怎么写就怎么写。当然要设置一下StatusCode,否则全部返回200

 @{ Response.StatusCode = 404;}

当然也可以在controller里面设置

 

日志可以写在global里面

    protected void Application_Error(object sender, EventArgs e)
        {
            var exception = Server.GetLastError();
          //log exception
}

 

posted @ 2017-01-17 18:33  沉默的糕点  阅读(2527)  评论(0编辑  收藏  举报