Превышена максимальная длина запроса, не перенаправлена ​​на страницу ошибки - PullRequest
1 голос
/ 21 июля 2011

Я перешел по этим ссылкам:

  1. Поймать "Превышена максимальная длина запроса" и
  2. ASP.NET - как отобразить страницу с ошибкойпри загрузке большого файла (превышена максимальная длина запроса)?

для отображения страницы с ошибкой при обработке загрузки файлов, превышающей maxRequestLength в web.config

Но моя проблема заключается в, он не перенаправляется на страницу ошибки (в сообщении говорится, что веб-страница не может быть отображена).Я не знаю, что мне не хватает.

Вот мой код @ 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 не было инициализировано, оно по умолчанию установлено в 4 МБ.(Я не установил это, потому что это не важно для меня.)

Надеюсь, вы могли бы помочь мне с этим.Спасибо

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Мне удалось найти другой способ решения ошибки maxRequestLength.Я нашел его по этой ссылке:

Решение было опубликовано в качестве комментария Ракешом Кумаром Роем (Детали сообщения: пятница, 13 февраля 2009 г. 1:43 вечера).Это может быть полезно для других программистов.: D

0 голосов
/ 06 апреля 2016

Вы можете добавить

 <httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" subStatusCode="13" />
  <error statusCode="404" subStatusCode="13" prefixLanguageFilePath="" path="http://localhost:1899/ErrorUpload.aspx" responseMode="Redirect" />
</httpErrors>

сразу после

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="5000000" />
  </requestFiltering>
</security>

, куда вы перенаправляете на страницу с ошибкой ...

...