Загрузка файла остановилась примерно через 1 минуту в действии MVC с типом возврата файла - PullRequest
0 голосов
/ 23 февраля 2019

Я использую Mvc 5.0, и у меня есть действие для загрузки данных в виде файла CSV.при публикации веб-сайта, если размер файла результата превышает 9 Мб, процесс загрузки файла будет остановлен в браузере.и ничего не случилось.В разделе «Проверка элемента» браузера отсутствует ошибка консоли или сети.Также не исключение.

Кроме того, в локальной системе это действие работает правильно, у меня есть другое действие для экспорта файла Excel, к сожалению, у него такая же проблема в том же senario.Связана ли эта ошибка с IIS или нет?

Я изменил 'maxRequestLength' в web.config и установил 99999, но не работал

Mvc action return part:

return File(fileByteArray, "application/csv", ReportFileName);

Js Методы:

 function DownloadCSV(formName, url) {
var formSelector = 'form[name=' + formName + ']';
var params = $(formSelector).serializeFormToUri();
window.location = url + params;

}

$.fn.serializeFormToUri = function () {

    var form = this;
    var data = serializeForm(form);

    var uri = '?';

    $.each(data, function (index, item) {
        if(index !== 0)
            uri = uri + '&';
        uri = uri + item.name + '=' + item.value;
    });
    return uri;
};

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

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

0 голосов
/ 23 февраля 2019

Если вы работаете с IIS7 или новее, вам также может потребоваться увеличить maxAllowedContentLength, что в основном ограничивает размер ответов, отправляемых клиенту.Это должно быть в вашем файле web.config.

Это примерно 1 ГБ:

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