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.

Другие вопросы по тегам