Тайм-аут страницы ASPX C # - PullRequest
       1

Тайм-аут страницы ASPX C #

2 голосов
/ 11 ноября 2011

Я пытаюсь загрузить файлы, и небольшие файлы работают, но большие, похоже, перестают работать после 2:16. Максимальная длина файла, которую я ожидаю, займет около 20 минут, а 3600 - это час. Я установил неправильный атрибут?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
    <authorization>
        <deny users="?" />
    </authorization>
  <httpRuntime executionTimeout="3600" maxRequestLength="2097151" requestValidationMode="2.0"/>
</system.web>
</configuration>

1 Ответ

1 голос
/ 11 ноября 2011

Обычная проблема заключается в том, что код, который получил загруженный файл, поместит результаты в байтовый массив (byte [])

Эти байтовые массивы полностью хранятся в памяти.В зависимости от версии вашей ОС, веб-сервера, объема памяти и т. Д., Обычно около 800 МБ памяти, IIS перезапускает рабочий процесс.Это сделано для того, чтобы весь сервер не вышел из строя, потому что один запрос использует чрезмерное количество памяти.

Сторонние загрузчики файлов используют различные методы для потоковой передачи файлов чанка за раз и могут бытьиспользуется для загрузки файлов из нескольких ГБ без использования памяти, превышающей несколько килобайт.

Техника потоковой передачи также должна поддерживаться для всех слоев кода, которые касаются файла, т. е. если компонент записывает его вфайл, он должен транслироваться и разбиваться на части, а не накапливать все это в байте [] и записывать в файл.То же самое, когда код в конечном итоге записывается в файл в столбец BLOB в БД.

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