Я решаю проблему с
, запрос в этом случае может быть function ajaxSupprimer(url) {
fetch(url, {
method: 'DELETE',
headers: new Headers({
''Authorization': 'Bearer '+mytoken,
'Content-Type': 'application/json'
}),
}).then(refresh);
Я видел, что для провайдера аутентификации, который вы используете, ключ «Авторизация»
Нет никакого простого способа поймать такое исключение, к сожалению. То, что я делаю, или переопределить метод OnError на уровне страницы или Application_Error в global.asax, затем проверить, был ли это отказ Запроса Max и, если так, передача в ошибочную страницу.
protected override void OnError(EventArgs e) .....
private void Application_Error(object sender, EventArgs e)
{
if (GlobalHelper.IsMaxRequestExceededException(this.Server.GetLastError()))
{
this.Server.ClearError();
this.Server.Transfer("~/error/UploadTooLarge.aspx");
}
}
Это - взлом, но код ниже работ для меня
const int TimedOutExceptionCode = -2147467259;
public static bool IsMaxRequestExceededException(Exception e)
{
// unhandled errors = caught at global.ascx level
// http exception = caught at page level
Exception main;
var unhandled = e as HttpUnhandledException;
if (unhandled != null && unhandled.ErrorCode == TimedOutExceptionCode)
{
main = unhandled.InnerException;
}
else
{
main = e;
}
var http = main as HttpException;
if (http != null && http.ErrorCode == TimedOutExceptionCode)
{
// hack: no real method of identifying if the error is max request exceeded as
// it is treated as a timeout exception
if (http.StackTrace.Contains("GetEntireRawContent"))
{
// MAX REQUEST HAS BEEN EXCEEDED
return true;
}
}
return false;
}
Можно решить это путем увеличения максимальной длины запроса в web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<httpRuntime maxRequestLength="102400" />
</system.web>
</configuration>
пример выше для предела 100 МБ.
Поскольку GateKiller заявил, что необходимо изменить maxRequestLength. Вы, возможно, также должны изменить executionTimeout в случае, если скорость загрузки является слишком медленной. Обратите внимание, что Вы не хотите, чтобы любая из этих настроек была слишком большой иначе, Вы будете открыты для DoS-атак.
значение по умолчанию для executionTimeout составляет 360 секунд или 6 минут.
можно изменить maxRequestLength и executionTimeout с httpRuntime Элемент .
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout="1200" />
</system.web>
</configuration>
РЕДАКТИРОВАНИЕ:
, Если Вы хотите обработать исключение независимо тогда, как уже был указан, необходимо будет обработать его в Global.asax. Вот ссылка на пример кода .
Привет, решение, упомянутое Дэмиеном МакГиверном, Работает только на IIS6,
Не работает на IIS7 и ASP.NET Development Server. Я получаю страницу с сообщением «404 - файл или каталог не найден».
Есть идеи?
РЕДАКТИРОВАТЬ:
Понятно ... Это решение все еще не работает на сервере разработки ASP.NET, но у меня есть причина, по которой он не работал на IIS7 в моем случае.
Причина в том, что IIS7 имеет встроенное сканирование запросов, которое накладывает ограничение на загружаемый файл, которое по умолчанию составляет 30000000 байт (что немного меньше 30 МБ).
И я пытался загрузить файл размером 100 МБ, чтобы протестировать решение, упомянутое Дэмиеном МакГиверном (с maxRequestLength = "10240", т.е. 10 МБ в web.config). Теперь, если я загружу файл размером> 10 МБ и <30 МБ, тогда страница будет перенаправлена на указанную страницу с ошибкой. Но если размер файла> 30 МБ, то отображается уродливая встроенная страница с ошибкой, отображающая «404 - Файл или каталог не найден»
. Итак, чтобы избежать этого, вы должны увеличить макс. допустимая длина содержимого запроса для вашего веб-сайта в IIS7. Это можно сделать с помощью следующей команды:
appcmd set config "SiteName" -section:requestFiltering -requestLimits.maxAllowedContentLength:209715200 -commitpath:apphost
Я установил макс. длина содержимого до 200 МБ.
После выполнения этой настройки страница успешно перенаправляется на мою страницу с ошибкой, когда я пытаюсь загрузить файл размером 100 МБ
См. http://weblogs.asp.net/jgalloway/archive/2008/01 /08/large-file-uploads-in-asp-net.aspx для получения дополнительных сведений.