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% の Web フォームと 1% の Razor/MVC 4 である私の Web サイトで機能します。

  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 に答える