2010-08-06 2 views
0

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

Я нашел это уже ... Catching "Maximum request length exceeded"

Я был неудачен в получении, что работать.

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

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

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

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

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

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

ответ

0

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

+0

Спасибо, но я уже знаю об этом значении. Я должен был упомянуть об этом. Мы должны держать лимит на месте, мы не хотим разрешать пользователю загружать большой файл. Кроме того, даже если я установил его на 500 мб или концерт, если какой-то случайный пользователь решает попробовать что-то большее, он увидит ошибку. – Carter

+0

@AmRan действительно ли вы хотите, чтобы все пользователи на вашем сайте загружали файлы 100 МБ ?! Значение в веб-конфигурации должно быть установлено на самый низкий разумный лимит, с которым вы можете уйти, а не на какой-либо произвольно высокий предел. –

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> 

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

+0

Это работает, но все же вызывает предупреждение javascript, чтобы показать ... любой способ предотвратить отображение javascript-предупреждения? –

+0

@Ken Sykora: попробуйте вернуть true; в методе onUploadError. function onUploadError() {uploadError = true; return true;} Я не уверен. – dhinesh

 Смежные вопросы

  • Нет связанных вопросов^_^