我想在global.asax中使用Application_Error()来记录网站上的错误网址并重定向到自定义错误登录页面。问题是为什么当控制器不存在时,网站没有通过应用程序错误。
我测试了以下网址以及通过应用程序错误传递的所有内容:
这个没有通过应用程序错误并返回404:
应用程序错误代码:
protected void Application_Error(object sender, EventArgs e)
{
var requestTime = DateTime.Now;
Exception ex = Server.GetLastError().GetBaseException();
//log Request.Url.ToString()
}
RouteConfig.cs代码:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Account",
url: "Account/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Home",
url: "Home/{action}/{test}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "HomeBlank",
url: "",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:0)
请将以下内容添加到RouteConfig.cs
:
routes.MapRoute(
name: "NotFound",
url: "{*url}",
defaults: new { controller = "Error", action = "NotFound", id = UrlParameter.Optional }
);
某些网址无法解析,上面添加的网址会处理这些情况。在NotFound
的{{1}}行动中,您可以向用户显示自定义错误页面。
ErrorController