1

HTTP ステータス エラーごとに異なるメッセージを表示する一般的なエラー ページをデザインしたいと考えています。出来ますか?

<customErrors mode="RemoteOnly" redirect="GenericErrorPage.htm">

たとえば、

 error statusCode="403"

次に表示

 Access Denied!

ありがとう。

4

1 に答える 1

1

はい、可能です。次のようなことを試してください。

  <customErrors mode="On">
    <error redirect="~/GenericError.aspx" statusCode="404"/>
  </customErrors>

ただし、IIS 7 で Web アプリケーションをホストしている場合は、次のようにカスタム エラーを定義する必要があることに注意してください。

  <system.webServer>
    <httpErrors existingResponse="Replace" errorMode="Custom">
      <remove statusCode="404"/>
      <error statusCode="404" path="GenericError.aspx" responseMode="Redirect"  />
    </httpErrors>
  </system.webServer>

編集 1

一般的な ASPX エラー ページを作成し、HTML エラー ステータス コードに応じてエラー メッセージを表示する場合は、次のようにします。

(私はちょうどテストし、動作します)

redirectMode="ResponseRewrite"属性をcustomErrorsセクションに追加します。

<customErrors mode="On" defaultRedirect="~/GenericError.aspx" redirectMode="ResponseRewrite" />

一般的なエラー ページ (Page_Load イベント) で:

    var ex = HttpContext.Current.Server.GetLastError();
    this.lblMessage.Text += "<br/>" + ex.Message + ex.GetType().ToString();

    if (ex is HttpException)
    {
        var nex = ex as HttpException;
        this.lblMessage.Text += " " + nex.GetHttpCode().ToString();

        switch (nex.GetHttpCode())
        {
            case 404:
                // do somehting cool
                break;
            case 503:
                // do somehting even cooler
                break;
            default:
                break;
        }
    }
于 2012-07-20T20:44:13.983 に答える