【发布时间】:2014-10-28 18:09:00
【问题描述】:
我为我的 ASP.NET MVC 应用程序创建了自定义错误,由于某种原因,它们只显示在我的本地计算机上,但是当我在远程服务器上部署我的应用程序时,会显示默认的 IIS 错误页面(404 和 500)我想了解为什么会这样。这是我的应用配置:
web.config
<system.web>
...
<customErrors mode="On" defaultRedirect="~/ServerError">
<error statusCode="404" redirect="~/NotFound" />
</customErrors>
...
</system.web>
路由配置
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Error - 404",
"NotFound",
new { controller = "Error", action = "NotFound" }
);
routes.MapRoute(
"Error - 500",
"ServerError",
new { controller = "Error", action = "ServerError" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
错误控制器:
public class ErrorController : Controller
{
[AllowAnonymous]
public ActionResult ServerError()
{
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View();
}
[AllowAnonymous]
public ActionResult NotFound()
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
}
Global.asax
protected void Application_Error(object sender, EventArgs e)
{
Response.TrySkipIisCustomErrors = true;
}
本地机器 IIS 配置和远程 IIS 配置看起来很相似,但也许我遗漏了一些东西,我也必须正确配置它。
感谢您的帮助。
【问题讨论】:
标签: asp.net asp.net-mvc-4 iis