AsyncFileUpload: как скрыть ошибку предупреждения о превышении максимальной длины запроса?
Если я загружаю файл, размер которого превышает максимальную длину запроса конфигурации, я получаю всплывающее предупреждение "Ошибка ответа сервера: неизвестная ошибка сервера". Он спрашивает, хочу ли я увидеть страницу ответа, и если я нажимаю "ОК", появляется окно с сообщением об ошибке "Максимальная длина запроса превышена".
Я уже нашел это... Поймал "Превышена максимальная длина запроса"
Мне не удалось заставить это работать.
Я также нашел другой вопрос SO (кажется, я не могу найти его сейчас), который был похож. Разница была в том, что ОП спросил, как перенаправить на страницу с ошибкой. Я не хочу этого делать. Ответ состоял в том, чтобы использовать пользовательское перенаправление ошибок, которое устанавливается в файле web.config.
Я просто хочу поглотить ошибку и ничего не делать, я использую событие OnClientUploadError для обработки ошибки через js. По сути, я просто не хочу это глупое всплывающее сообщение.
Одна странность в том, что я не вижу ошибки при локальном запуске приложения, но вижу ошибку, когда приложение развернуто на нашем сервере.
Обратите внимание, я должен был упомянуть, что я знаю о значении конфигурации для установки максимальной длины запроса. Установка его очень большим не подойдет для этого экземпляра.
Обновление Итак, мне интересно, может ли это быть что-то с настройками IIS нашего сервера. Странно, что это не происходит локально. Любые идеи о том, что я должен искать? Большая часть того, что я нахожу в сети, предлагает модифицировать machine.config. Однако, как я уже говорил, я не хочу просто увеличивать разрешенный размер. Я исправляю ошибку через js, я не хочу, чтобы это предупреждение появлялось ни при каких обстоятельствах.
Обновление Ну, это звучит как ограничение IIS по умолчанию составляет 30 МБ. Файлы, которые я пробую, намного меньше этого. Я в недоумении...
2 ответа
На OnClientUploadError напишите javascript, который установит некоторый флаг, а затем этот флаг можно использовать при отправке формы, давая пользователю сообщение о том, что загрузка вызвала ошибку.
<asp:AsyncFileUpload ID="fileUpload"
runat="server" OnClientUploadError="onUploadError"
OnClientUploadComplete="uploadComplete"
OnUploadedComplete="OnUploadComplete" />
в JavaScript
<script language="javascript" type="text/javascript">
var uploadError = false;
function onUploadError()
{
uploadError = true;
}
function uploadComplete()
{
uploadError = false;
}
function validateForm()
{
return !uploadError;
}
</script>
Делая это перенаправление на страницу ошибки избегается.
Проверьте значение 4096 в файле Web.Config в узле httpRuntime. Увеличьте его до 100 Мб или по желанию. 4096 означает 4mb.