PRB: Нельзя передавать большие файлы при использовании элемента управления HtmlInputFile сервера

Переводы статьи Переводы статьи
Код статьи: 295626 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

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

Причина

Эта проблема возникает, поскольку значение по умолчанию для maxRequestLength параметр в <httpruntime></httpruntime> раздел файла Machine.config является 4096 (4 МБ). В результате файлы, размер которых превышает это значение по умолчанию не загружаются.

Решение

Для решения этой проблемы используйте один из следующих способов:
  • В файле Machine.config, изменение maxRequestLength атрибут <httpruntime></httpruntime> раздел конфигурации для большего значения. Это изменение затрагивает весь компьютер.
  • В файле Web.config переопределяют значение maxRequestLength для приложения. Например следующая запись в файле Web.config позволяет меньше или равен 8 мегабайт (МБ) для передачи файлов:
    <httpRuntime maxRequestLength="8192" />
    					

Дополнительная информация

По умолчанию это значение ограничен 4 Мбайт для ограничения возможных атак отказа В обслуживании.

При maxRequestLength набор атрибутов в файле Machine.config и отправке запроса (например, отправка файла), превышает значение maxRequestLength, не удается отобразить страницу настраиваемой ошибки. Вместо этого Microsoft Internet Explorer отобразит сообщение об ошибке «Не удается найти сервер или DNS».

Теоретически максимальный размер загружаемого файла довольно велик. Однако из-за ASP.NET мониторинга, невозможно передать большой файлы в ASP.NET. ASP.NET имеет виртуальное адресное пространство размером 2 гигабайта (ГБ). Тем не менее ASP.NET рабочий процесс использует только немногим менее 1 ГБ из-за фрагментации памяти и мониторинга работоспособности.

В процессе загрузки, ASP.NET загружает весь файл в память, прежде чем пользователь может сохранить файл на диск. Таким образом, процесс может перезапуститься из-за memoryLimit атрибут processModel тег в файле Machine.config. В memoryLimit атрибут указывает процент физической памяти, ASP.NET рабочий процесс может использовать до начала процесса будет автоматически перезапущен. Повторное использование предотвращает утечки памяти вызывает ASP.NET Сбой или зависание.

Кроме того, другие факторы play роль в максимальный размер файла, могут быть загружены. Эти факторы включают в себя объем доступной памяти, свободного места на диске, скорости процессора и текущий сетевой трафик. При регулярной загрузке, файлов корпорации Майкрософт Рекомендуется использовать максимальный размер файла в диапазоне от 10 до 20 мегабайт (МБ). Если файлы загружаются редко, максимальный размер файла может быть 100 МБ.

Примечание Можно передавать файлы, размер которых превышает 100 МБ в ASP.NET. Тем не менее Корпорация Майкрософт рекомендует следовать максимального размеров перечисленных в этой статье. Чтобы определить более точные размеры файлов выполните нагрузочное тестирование на компьютерах, которые похожи на те, которые будут используемые в производстве.

Вы можете заметить следующие сообщения об ошибках, если ограничение на размер файла, возникающих при загрузке файла:
  • Страница не может быть отображается.
  • Серверное приложение Недоступен
    В журнал событий сообщение об ошибке будет аналогична следующий:

    aspnet_wp.exe (PID:PIDNumber) был перезапущен, так как память Превышение потребления SizeLimit МБ (Процент Процентная доля доступной ОПЕРАТИВНАЯ ПАМЯТЬ).

  • Исключение типа Исключение System.OutOfMemoryException.
Может оказаться, что загрузка происходит очень медленно. Если смотреть процесс Aspnet_wp.exe в диспетчере задач Windows, можно заметить, что дельта изменения памяти на 64 КБ каждые 1-2 секунды. В зависимости от размера файл, эта задержка может привести к ASP.NET рабочий процесс введет из-за Ошибка responseDeadlock.

Свойства

Код статьи: 295626 - Последний отзыв: 5 июня 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Ключевые слова: 
kbproductlink kbconfig kbprb kbservercontrols kbmt KB295626 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:295626

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com