AsyncFileUpload: как скрыть ошибку предупреждения о превышении максимальной длины запроса? - PullRequest
0 голосов
/ 06 августа 2010

Если я загружаю файл, размер которого превышает максимальную длину запроса конфигурации, я получаю всплывающее предупреждение «Ошибка ответа сервера: неизвестная ошибка сервера».Он спрашивает, хочу ли я увидеть страницу ответа, и если я нажимаю «ОК», появляется окно с сообщением об ошибке приложения «Максимальная длина запроса превышена».

Я уже нашел это ... Catching "Максимумдлина запроса превысила "

Мне не удалось заставить его работать.

Я также нашел другой вопрос SO (кажется, я не могу его сейчас найти), который был похож.Разница была в том, что ОП спросил, как перенаправить на страницу с ошибкой.Я не хочу этого делать.Ответ состоял в том, чтобы использовать пользовательское перенаправление ошибок, которое настраивается в web.config.

Я просто хочу поглотить ошибку и ничего не делать, я использую событие OnClientUploadError для обработки ошибки через js.По сути, я просто не хочу этого глупого всплывающего сообщения.

Одна странность в том, что я не вижу ошибки при локальном запуске приложения, но я вижу ошибку, когда у меня есть приложениеразвернут на нашем сервере.

Примечание Я должен был упомянуть, что знаю о значении конфигурации для установки максимальной длины запроса.Установка очень большого значения не подойдет для этого экземпляра.

Обновление Итак, мне интересно, может ли это быть что-то с настройками IIS нашего сервера.Странно, что это не происходит локально.Любые идеи о том, что я должен искать?Большая часть того, что я нахожу в сети, предлагает модифицировать machine.config.Однако, как я уже говорил, я не хочу просто увеличивать разрешенный размер.Я исправляю ошибку с помощью js, я не хочу, чтобы это предупреждение отображалось ни при каких обстоятельствах.

Обновление Что ж, похоже, ограничение IIS по умолчанию составляет 30 МБ.Файлы, которые я пробую, намного меньше этого.Я в растерянности ...

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

В 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>

Это позволяет избежать перенаправления на страницу ошибки.

0 голосов
/ 06 августа 2010

Проверьте значение 4096 в Web.Config в узле httpRuntime.Увеличьте его до 100 Мб или по желанию.4096 означает 4mb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...