【发布时间】:2016-05-05 04:49:03
【问题描述】:
我让用户选择要上传的单个文件。但是在非常奇怪的情况下,上传永远不会完成。
工作用例:页面完成加载后,用户选择一个文件并上传,它总是会上传。
不工作用例:页面加载完成后,用户盯着屏幕一两分钟,然后选择要上传的文件,上传几乎永远不会完成。我们不知道凝视多久就足够了,但通常 2 到 5 分钟就够了。该问题仅出现在 Windows 7 机器上的 IE 11 中。在同一台机器上,Chrome 和 Firefox 运行良好。 IIS Web 服务器不是负载平衡的,但它也发生在负载平衡的环境中。当上传永远不会完成时,期望 POST 的控制器永远不会收到请求,IIS 日志也永远不会收到 POST 请求。
更新: 我发现开发Web服务器是单台服务器,但实际上是在负载均衡环境后面,因为我们的QA环境有两台Web服务器并且负载均衡。话虽如此,看来问题是由负载平衡器引起的。因为如果文件通过节点名称 POST 到服务器 URL,则上传工作。但是如果 POST 到负载均衡器,它会失败。我会看看我的网络人员是否可以找到解决方案。我不认为这是代码问题,还是我错了?
var FormEdit = function () {
var that = {};
that.upload = function () {
var data = new FormData();
var fileInput = $('#fileInput')[0];
var file = fileInput.files[0];
data.append(file.name, file);
$.ajax({
type: 'post',
dataType: 'json',
url: url,
data: data,
processData: false,
contentType: false,
}).fail(function () {
}).then(function (data) {
}).always(function () {
});
};
};
【问题讨论】:
-
如果服务器从未收到请求,则可能是您正在测试它的计算机的问题。你用 IE11 试试另一台电脑吗
-
是的,我在其他几台具有相同浏览器和操作系统的 PC 上进行了尝试,并且遇到了同样的问题。这是一个企业环境,所以大多数 PC 都是相似的。
-
介意分享脚本挂钩的触发器吗?还有你用来发送的文件有多大?
标签: jquery asp.net-mvc-4 knockout.js iis-8 windows-server-2012-r2