Windows 为什么我的用户';下载在IE中随机停止?

Windows 为什么我的用户';下载在IE中随机停止?,windows,internet-explorer,Windows,Internet Explorer,我有由iframe中的重定向触发的下载 用户点击“下载”按钮 我们的JS从服务器获取下载URL(这是一个超时URL,因此必须这样做) iframe被重定向到下载url,该url具有附件的内容配置,因此浏览器在不更改页面位置的情况下启动下载 这适用于所有用户和浏览器。。。除了一些IE用户 我试图重现这个问题,下面是我想到的: 如果快速点击“保存或打开”对话框,下载始终有效 如果缓慢点击“保存或打开”对话框(如10-20秒),下载有时有效,有时无效。我还没有找到一个模式 下面是它卡住时的样子:

我有由iframe中的重定向触发的下载

  • 用户点击“下载”按钮
  • 我们的JS从服务器获取下载URL(这是一个超时URL,因此必须这样做)
  • iframe被重定向到下载url,该url具有附件的内容配置,因此浏览器在不更改页面位置的情况下启动下载
  • 这适用于所有用户和浏览器。。。除了一些IE用户

    我试图重现这个问题,下面是我想到的:

    • 如果快速点击“保存或打开”对话框,下载始终有效
    • 如果缓慢点击“保存或打开”对话框(如10-20秒),下载有时有效,有时无效。我还没有找到一个模式
    下面是它卡住时的样子:

    问题不在于S3上的链接超时——我上面的实验都在时间窗口内

    是什么导致了这些零星的下载失败

    更新


    服务器日志表明下载已完全发送给用户。

    我不知道IE如何处理它,但在其他浏览器中,当您选择要存储文件的位置时,下载已经开始。您的下载URL的超时时间是多少?你试过把它调高吗?它不止一次工作吗?(如果没有,请检查您的日志中是否有失败的访问尝试)。 祝你好运

    PS:如果什么都不起作用,.

    哪种版本的IE? 如果你在下载完成之前没有决定如何处理,IE8有时会出现错误

    如果服务器记录数据被发送到客户端/浏览器,那么接下来要调查的是代理和浏览器


    您的屏幕截图实际上看起来像下载对话,但尚未进行选择。在后台的某个地方有一个选择屏幕吗?

    我做了一些测试,下载了一个78兆的文件,在Windows7中使用IE9。当您单击链接时,下载开始。Internet Explorer不会等待您确认或取消。IE将字节保存到名为fizzbuz.partial的文件中的下载目录中。IE将通过在文件完成时重命名文件或在取消时删除文件来完成您的选择

    这可能是时间问题或HTTP问题

    定时问题

    是否有可能是另一个进程打开了该文件,甚至锁定了它?可能是一个过于热心的反病毒或实时备份软件?可能是关闭和重命名操作(必须在服务器发送整个文件后进行)的操作如下所示:

  • 将最后的有效字节写入fizzbuzz.partial文件
  • 关闭文件
  • 重命名文件
  • 如果进程在2到3之间获取文件进行独占读取,会怎么样?也许该应用程序会对文件进行一些更改,比如写入替代NTFS流,这会让IE感到困惑

    请记住,浏览器插件也会在下载结束时收到通知。另一种计时问题可能是由插件引起的,该插件在看到它结束时会执行一些操作。在某些情况下,该操作可能会失败或永远不会返回

    尝试在不运行任何防病毒程序(比仅将文件列入白名单更好的测试)和不加载任何浏览器插件的情况下重现问题

    HTTP问题

    服务器和客户端必须就结束连接的方式达成一致。您必须:

  • 在传输结束时关闭连接
  • 指定下载的长度
  • 从远处调试很困难,但如果可能的话,捕获下载的网络跟踪并寻找以下线索:

  • 内容长度标题不存在,或者可能是N个字节(浏览器将永远等待N个字节不出现)
  • 每个客户端是否具有相同的代理配置
  • 非工作客户端是否降级为HTTP 1.0?(有一个名为“始终通过代理使用http 1.0”的设置)

  • 从您的屏幕截图来看,浏览器似乎无法计算预计到达时间,但这与下载之间没有关联。

    尝试将
    缓存控制:max age
    设置为大于0的值。我注意到IE可能会在设置为立即过期的内容上出现类似的错误(即,通过使用无缓存)。

    我认为这可能也与此有关,但1)如果它提前开始,那么它仍然只访问一次2)即使它做了一些聪明/愚蠢的事情,最终访问了两次,url仍然可以在时间限制内进行多次访问,这是1分钟——在我测试的时间范围内。IE也会在你选择如何使用它时启动下载。这是正确的。你只是缺少了一个触发器,不管它是什么,它告诉你下载完成了。你能详细解释一下“像这样搞砸了”吗?ping——还有更多的信息吗?我只是从几年前在IE6中遇到的问题说起,不确定是否与新的IE版本有关。问题很简单,通过http头设置为无缓存的下载实际上可能不会保存到磁盘。IE可能会在下载完成之前删除下载,但随后未能意识到这一点,并且仍然尝试使用不再存在的文件执行默认的打开/保存操作。我可以看出这也可能导致进度停滞(删除您仍在写入的文件或使用已删除文件的句柄是个坏消息)。我在进行选择后拍摄了屏幕截图,选择窗口消失了。你能详细说明一下“有时行为不端”吗?我遇到过这样的情况:IE8“忘记/丢失了下载文件的轨迹”,而保存/打开对话很长时间没有执行[在我的情况下是几个小时]。这可能不相关,但仍然是事实