Я перешел по этим ссылкам:
- Перехват превышена максимальная длина запроса и
- 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 МБ. (Я не устанавливал, потому что для меня это не важно.)
Надеюсь, ты поможешь мне с этим. Спасибо
Error.html
вызывает ошибку, мне нужен символ~
, чтобы указать корневой путь виртуального каталога. - person KaeL   schedule 21.07.2011web.config
работает как положено сdefaultRedirect="Error.html"
:( - person KaeL   schedule 21.07.2011web.config
работает правильно, как раз в сценарии выше, при загрузке файлов, превышающихmaxRequestLength
, он не перенаправляет на страницу с ошибкой. Кроме того, отображается страница с ошибкой. - person KaeL   schedule 21.07.2011