MVC操作中大约1分钟后,文件下载类型停止,文件下载停止

时间:2019-02-23 07:14:39

标签: c# asp.net-mvc export-to-csv

我正在使用Mvc 5.0,并且有一个动作将数据下载为Csv文件。 发布网站时,如果结果文件大小大于9 Mb,则将在浏览器中停止文件下载过程。并没有任何反应。 浏览器“检查元素”部分中没有控制台或网络错误。 也没有例外。

此外,在本地系统中此操作正常运行,我又导出了excel文件导出操作,不幸的是,它在同一Senario中具有相同的问题。 此错误与IIS相关吗?

我在web.config中修改了'maxRequestLength'并将其设置为99999,但没有用

Mvc操作返回部分:

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 :(得分:1)

经过大量研究,我们发现 WAF(Web应用防火墙)存在一些限制,不允许从服务器下载大文件。

答案 1 :(得分:0)

如果运行的是IIS7或更高版本,则可能还必须增加maxAllowedContentLength,这从根本上限制了发送给客户端的响应的大小。它应该放在您的web.config文件中。

大约1GB:

function initCell(data) {

    var cell = document.createElement("div");
    cell.id = window.getCellId(data.row, data.col);
    cell.innerHTML = "NotComputed";

    cell.style["grid-row-start"]=data.row;
    cell.style['grid-row-end']=data.row+1;
    cell.style['grid-column-start']=data.col;
    cell.style['grid-column-end']=data.col+1;

    return cell;

}