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 }