ASP MVC 5 - 403 customError无法正常工作

时间:2017-03-13 14:02:01

标签: c# asp.net asp.net-mvc-5 custom-errors

我正在尝试为我的应用程序创建自定义错误页面,但它大部分都在工作,但不适用于403错误。

我的Web.config:

<customErrors mode="On" defaultRedirect="~/Error">
  <error statusCode="404" redirect="~/Error/NotFound" />
  <error statusCode="500" redirect="~Error/InternalServer" />
  <error statusCode="403" redirect="~Error/Forbidden" />
</customErrors>

我有ErrorController委托这些请求。当404点击时,它会显示自定义错误页面,但403不显示。我正在获取默认的IIS 403 - Forbidden页面,即使我已为其设置了自定义错误页面。我已经浏览了一下并尝试使用<httpErrors>,而这似乎每次都给我一个空白页。

以下是我的Global.asax,如果有任何帮助的话:

void Application_Error(object sender, EventArgs e)
{
    Exception exc = Server.GetLastError();

    if (exc is HttpUnhandledException)
    {
        // Pass the error on to the error page.
        Server.Transfer("ErrorPage.aspx?handler=Application_Error%20-%20Global.asax", true);
    }
}

1 个答案:

答案 0 :(得分:4)

U可以使用IIS 7 +的新方法。

<httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="403" />
      <remove statusCode="404" />
      <remove statusCode="500" />
      <error statusCode="403" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="404" path="/Error/404" responseMode="ExecuteURL" />
      <error statusCode="500" path="/Error/500" responseMode="ExecuteURL" />
</httpErrors>

system.webServer部分中的httpErros部分。

IIS配置refence: https://www.iis.net/configreference/system.webserver/httperrors
还有相关问题: What is the difference between customErrors and httpErrors?