IE:无法从*下载*.无法打开此Internet站点.请求的网站不可用或无法找到

Sma*_*tie 47 internet-explorer download

我的网站和IE有问题.我有一个文件Document.ashx,它根据查询字符串中传递的参数成为我数据库中的文档.

该文件适用于:

  • 您在我的网站上并单击下载链接.
  • 您可以访问我的网站上的任何内容并将URL粘贴到地址栏中并访问它.
  • 您之前已经访问过一次文档链接,即使它出错也是如此.

如果:

  • 您没有在当前IE打开的情况下访问我的网站,并将链接粘贴到地址栏中.它显示以下错误:

Windows Internet Explorer

无法从MyHostName下载Document.ashx.

无法打开此Internet站点.

请求的网站不可用或无法找到.

请稍后再试.

有没有人知道会导致这种情况的原因.当然它在Firefox中运行良好.

我在办公室里找了几个人用IE来试试,他们都遇到了同样的问题.他们都说它适用于Firefox.

小智 24

就像rymo说的那样Cache-Control: private,如果你的响应标题碰巧有了Pragma :no-cache,你还必须把它改成Pragma: token.


rym*_*ymo 19

根据David在此提供的知识库文章(通过SSL下载的Internet Explorer文件不能与缓存控制标头一起使用),我们将传出标头更改Cache-Control: no-cacheCache-Control: private.这似乎解决了IE8问题而不影响其他浏览器.小心使用Cache-Control: no-store.


rym*_*ymo 15

事实证明,IE8可以接受完全禁用的缓存,但它对于标头的确切顺序非常挑剔.因此,不要回头private(允许某些缓存,可能不符合您的安全需求),而是使用:

Cache-Control: no-store, no-cache, must-revalidate
Run Code Online (Sandbox Code Playgroud)

当按照确切的顺序指定 - 首先no-storeTHEN no-cache- IE8将允许文件下载而不会出错.还要确保未Pragma设置标头.

  • 我只是赞成这一点,但这只是相信它会起作用.不幸的是,在我们的测试中没有,我们必须去Cache-Control:私有或重构我们的代码. (2认同)

Dan*_*Dan 7

此问题发生在IE8,可能是早期版本 - 但在IE9 +中解决.它通过SSL相关下载文档.

要解决我的应用程序中的问题,我必须在下载中添加以下两个标头(用PHP编写):

header("Cache-Control: private");
header("Pragma: cache");
Run Code Online (Sandbox Code Playgroud)


小智 6

这听起来像我的问题我只是与IE 8相遇.当我追踪解决方案时,我遇到了两个解决方案.其中一个应该纠正这个问题.

只是为了让您知道它是客户端计算机上的修复程序,因为它是IE编码导致问题的方式.

修复:http : //support.microsoft.com/kb/815313 http://support.microsoft.com/kb/323308


小智 0

我们在www.Qiqqa.com的 ClickOnce 部署中也遇到了同样的问题。我怀疑这与 IE 在收到“MIME 类型嗅探”时执行的操作有关application/octet-stream- 我想是为了保护用户免受恶意内容的侵害。

无论如何,为了解决这个问题,我们将文件的 mime 类型更改.deploytext/plain- 显然不理想,但同时,我不知道.deploy我们的服务器上可能有一个用户可以浏览的文件ClickOnce 之外。

问题解决了。