1

私はこれらのリンクをたどりました:

  1. 「リクエストの最大長を超えました」 をキャッチし、
  2. ASP.NET - 大きなファイルをアップロードするときにエラーページを表示する方法 (最大要求長を超えました)?

を超えるファイルのアップロードを処理するエラー ページを表示するmaxRequestLengthにはweb.config

しかし、私の問題は、エラー ページにリダイレクトされないことです (メッセージには、Web ページを表示できないというメッセージが表示されます)。何が欠けているのかわからない。

これが私のコード@Global.asaxです:

void Application_Error(object sender, EventArgs e) 
{       
    if (IsMaxRequestLengthExceeded(Server.GetLastError()))
    {
        this.Server.ClearError();
        this.Server.Transfer("~/Error.html");
    }
}

private bool IsMaxRequestLengthExceeded(Exception ex)
{
    Exception main;
    HttpUnhandledException unhandledEx = (HttpUnhandledException)ex;

    if (unhandledEx != null && unhandledEx.ErrorCode == -2147467259)
    {
        main = unhandledEx.InnerException;
    }
    else
    {
        main = unhandledEx;
    }

    HttpException httpException = (HttpException)main;
    if (httpException != null && httpException.ErrorCode == -2147467259)
    {
        if (httpException.StackTrace.Contains("GetEntireRawContent"))
        {
            return true;
        }
    }

    return false;
}

そして @ web.config:

<httpRuntime executionTimeout="1200" />
<customErrors defaultRedirect="Error.html" mode="On">
</customErrors>

maxRequestLength初期化されていない場合、デフォルトで 4MB に設定されていることがわかりました。(私にとっては重要ではないので設定しませんでした。)

これで私を助けてくれることを願っています。ありがとう

4

1 に答える 1