我有一个有趣的问题-我有自己的IIS 2016服务器,用于托管一个网站,该网站允许用户上传各种文件-有些为文本格式,其他则压缩在一起。最初,网站尝试上传更大的内容(例如〜50MB)时,将从服务器返回错误500。我用Google搜索到,IIS需要配置maxAllowedContentLength(默认更改为209715200,约300MB)以及FastCGI的IDLE,ACTIVITY和REQUEST的参数(更改为600),以便允许上传更大的文件而不会达到文件大小限制。但是,既然文件已被上传,这些较大文件的上传速度就减慢了爬网速度。以前,我可以在10秒内在本地网络上上传约20MB的文件,而现在50MB需要约160秒。我不会期望线性增加。
我的网站在Django上运行,而我的POST方法文件传输是通过JS中的Ajax调用进行的:
$('#sn').on('submit', function(event) {
event.preventDefault();
var post_data = new FormData($("#sn")[0]);
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
var percent = Math.round(evt.loaded/evt.total * 100)
console.log(percent)
$('#query_button').attr('disabled', true)
$('#query_button').get(0).innerText = "Upload status: " + percent + '%'
}, false);
xhr.upload.addEventListener("load", function(evt) {
$('#query_button').get(0).innerText = "PLEASE WAIT..."
}, false);
return xhr;
},
url: '#',
type: "POST",
data: post_data,
processData: false,
contentType: false,
dataType: "json",
statusCode: {
200: function() {
// alert("Server received request and posted a response!");
},
404: function() {
alert("Error code 404: Page not found!");
},
408: function() {
alert("Error code 408: Request Timeout!");
},
500: function() {
alert("Error code 500: Internal server error!");
}
},
success: function(response) {
console.log(response)
}
});
})
有人可以告诉我,是否Ajax调用可能是导致上载速度下降的原因,还是在IIS上需要进行其他调整?