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

我的网站和IE有问题。 我有一个文件Document.ashx成为从我的数据库中的文档取决于在查询string中传递的参数。

该文件工作如果:

  • 你在我的网站上,点击下载链接。
  • 您可以访问我网站上的任何内容,并将该url粘贴到地址栏中并进行访问。
  • 您之前已经访问过文档链接,即使它出错了。

在以下情况下不起作用:

  • 您尚未打开当前的IE浏览器访问我的网站,并将链接粘贴到地址栏中。 它显示以下错误:

Windows Internet Explorer

无法从MyHostName下载Document.ashx。

无法打开此Internet站点。

请求的网站不可用或无法find。

请稍后再试。

有没有人有线索会导致这一点。 自然,它在Firefox中工作正常。

我在办公室里找了好几个人用IE浏览器试试,他们都遇到同样的问题。 他们都说它在Firefox中起作用。

就像rymo所说的设置Cache-Control: private ,如果你的响应头碰巧有Pragma :no-cache ,你也必须把它改成Pragma: token

根据David在这里提供的KB文章( 通过SSL下载Internet Explorer文件不能与caching控制头一起工作 ) ,我们将输出头从Cache-Control: no-cache改为Cache-Control: private 。 这似乎解决了IE8的问题,而不影响其他浏览器。 小心使用Cache-Control: no-store

事实certificateIE8可以接受完全禁用的caching,但是对于标题的确切顺序非常挑剔的。 所以,而不是回到private (这允许某些caching,可能不符合您的安全需求)使用:

 Cache-Control: no-store, no-cache, must-revalidate 

当按照确切的顺序指定 – 首先no-store然后no-cache – IE8将允许文件下载没有错误。 还要确保Pragma头没有设置。

这个问题发生在IE8以及可能更早的版本中,但在IE9 +中解决。 关于通过SSL下载文件。

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

 header("Cache-Control: private"); header("Pragma: cache"); 

这听起来像我的问题,我只是与IE 8交叉。 当我追踪解决scheme时,我遇到了两个解决scheme。 其中之一应该纠正这个问题。

只是为了让你知道这是在客户端机器上的修复,因为它是如何IE编码导致的问题。

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

有什么大惊小怪的? 这个问题是由于立即caching过期或无caching。

执行以下操作来解决问题:

转到server system -> Run Inetmgr -> RightClick and properties on the folder(eg images) -> httpHeaders ->现在或者取消选中启用内容过期 ,或检查后过期,并给1分钟。

这是为IIS 5。

IIS 6/7会有类似的设置。

快乐编程!

我有同样的问题,并通过尝试所有上述方法来纠正它,感到沮丧。 很明显,我不想在客户端机器上完成一个解决scheme,所以我只是从头中删除“Pragma”参数,它开始很好地工作。 问题解决了。

如果你使用asp.net。 删除集合caching的代码

评论以下内容

  Response.Clear(); Response.Buffer = true; Response.Charset = ""; **//Response.Cache.SetCacheability(HttpCacheability.NoCache);** Response.ContentType = contentType; Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName); Response.BinaryWrite(bytes); Response.Flush(); Response.End(); 

我们在www.Qiqqa.com的ClickOnce部署中embedded了相同的问题。 我怀疑它与IE获取application/octet-stream时所执行的“MIMEtypes嗅探”有关 – 我想要保护用户免受恶意内容的侵害。

无论如何,为了解决这个问题,我们将.deploy文件的MIMEtypes改为text/plain – 显然不是很理想,但是同时我也不知道我们的.deploy文件服务器,用户将浏览到ClickOnce之外。

问题解决了。

dynamic创buildiframe,将src设置为下载页面的loaction,追加到正文。

function downloadInIFrame(fileId) { var url = "download.aspx?fileId=" + fileId; var iframe = document.createElement("iframe"); iframe.src = url; iframe.style.display = "none"; document.body.appendChild(iframe); }

这些代码适合我。

如果你做'保存目标为…'或打开新标签,它工作正常。 但仍然在IE8中发生错误。 我有相同的实现…创build具有iframe的div(display:none),并将其附加到body,并将src设置为其内容types为application / binary的frame。

我们在使用带有NoCache标签的MVC控制器的IE8上也遇到了同样的问题。 这设置在IE中打破文件下载的Response.Cache.SetNoStore

要解决 – 你可以通过reflection重置Http Cache Policy 。

此问题是由Internet Explorer中的浏览器设置引起的。 在Internet Explorer中,转至Tools > options > Advanced options 。 在标记为“ 安全性”的部分中,find并清除“不将encryption的页面保存到磁盘”