我正在使用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;
};
答案 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;
}