Подтвердить что ты не робот

ASP.NET MVC Время выгрузки файла

В настоящее время у меня есть проект ASP.NET MVC с загрузкой файлов, и он отлично работает, если у пользователя достаточно хорошее соединение, и их файл имеет разумный размер.

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

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

В конечном счете, решение, которое автоматически увеличит таймаут, если Request.Files.Count > 0 будет лучшим.

4b9b3361

Ответ 1

Я не уверен, что это будет работать в проекте MVC, но вы можете попытаться создать местоположение в вашем web.config и установить тайм-аут выполнения только для вашего URL-адреса для загрузки. Например:

<location path="YourUrl">
  <system.web>
    <httpRuntime executionTimeout="9001"/>
  </system.web>
</location>

Ответ 2

Вам может потребоваться увеличить тайм-аут в web.config:

<httpRuntime executionTimeout="01:00:00" />

Теперь это переопределяемо в файлах sub web.config, что означает, что если вы хотите увеличить тайм-аут только для загрузки script, вы могли бы написать общий обработчик HTTP, который будет обрабатывать закачки и помещать его в свою собственную подпапку с ее собственный web.config.

Ответ 3

Возможная проблема: если это не таймаут из-за нулевой активности, возможно, что-то связанное со встроенным ограничением размера, в разделе web.config httpRuntime вы можете добавить/увеличить maxRequestLength="" до вашего предела размера