1
<customErrors mode="On" defaultRedirect="~/Error.aspx">
    <error statusCode="500" redirect="~/500/"/>
    <error statusCode="404" redirect="~/404/"/>
</customErrors>

这适用于以下请求:

~/egerg.aspx
~/wf92734eg.aspx

但是对于任何其他扩展,这会提供服务器 404 页面!如何使服务器 404 页面重定向到我的错误页面?

4

1 回答 1

1

该解决方案适用于我的网站,该网站是 .NET Framework 4 上 99% 的网络表单和 1% 的 Razor/MVC 4。

  1. 在 /Web.config 中:

    <system.web>
      <customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx">
        <error statusCode="500" redirect="~/500/"/>
        <error statusCode="404" redirect="~/404/"/>
      </customErrors>
    </system.web>
    
  2. 在 404 处理程序的 Page_Load 事件中(我假设 /404/default.aspx.cs):

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
        Response.TrySkipIisCustomErrors = true;
    }
    
  3. 对 500 处理程序重复最后一步。

  4. /Global.asax.cs 中的 Application_Error 方法为空。

此解决方案与此非常相似。

于 2014-01-03T20:59:09.750 回答