2015-09-10 7 views
0

Эта проблема обсуждается в нескольких потоках, но я не могу заставить ее работать. Я загружаю текстовый файл размером 30 МБ. Я использую классический подход, когда <form> имеет <input type="file"/> и форму submit обрабатывается методом, принимающим параметр HttpPostedFileBase с атрибутом [HttpPost].ASP.NET MVC: проблема с большой загрузкой файлов

Проблема:

  1. На Крома это дает ERR_CONNECTION_RESET сообщение примерно через 2 минуты.
  2. В IE, это дает следующее сообщение:

    Ошибка HTTP 404,13 - модуль фильтрации не найден Запрос выполнен с возможностью отклонить запрос, который превышает длину содержимого запроса.

  3. Загрузка файла занимает слишком много времени (более 30 минут) в Firefox.

Решение Я попробовал: Set maxRequestLength="102400" executionTimeout="3600" в <httpRuntime>.

Что я хочу?

  1. Загрузить производительность должно быть хорошим.
  2. Решение должно работать для всех браузеров.

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

ответ

0

Вы изменили длину запроса, но не длину содержимого, как предположил IE.

Попробуйте добавить

<system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="36700160" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 

к вашему web.config.

что-то примечание, maxAllowedContentLength измеряется в байтах; 36 700 160 байт должны быть примерно равны примерно 35 МБ.

0

Вам нужно сделать несколько вещей, во-первых, вам необходимо изменить максимальный размер загружаемого файла:

<system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="36700160" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 

maxAllowedContentLength Где максимальный размер файла в байтах

Во-вторых , с размером файла, вам может потребоваться изменить лимит времени ожидания запроса, так как время загрузки файла может превышать значение по умолчанию (которое, по моему мнению, составляет около 2 минут):

<system.web> 
    <httpRuntime executionTimeout="300" /> 
</system.web> 

Где executionTimeout длина времени в секунд

изменить эти значения к тому, что вы чувствуете, подходит для решения

+0

Я попробовал, добавив тег, но это дает следующее сообщение об ошибке в IE: HTTP Error 500.19 - Внутренняя ошибка сервера Запрошенная страница недоступна, поскольку связанные с ней данные конфигурации для страницы недействительны. –

+0

У вас нет ошибки? – ediblecode

+0

Вы поставили 'security' внутри' system.webServer' – ediblecode

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