通过SSL Web API在Internet Explorer中间歇性“无法下载”错误

时间:2014-04-10 13:20:14

标签: .net internet-explorer ssl asp.net-web-api http-headers

我们一直在我们的办公桌上敲打我们的头,我将假设这与Response标头有关。断断续续的'无法下载'对话框让我猜到了问题究竟是什么,因为我所看到的大多数其他问题似乎都是全部或全部问题。

我们通过支持SSL的Web API端点提供PDF。发回的标题如下:

resp.Content.Headers.Clear()
resp.Content.Headers.ContentType = New MediaTypeHeaderValue("application/pdf")
resp.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment")
resp.Content.Headers.ContentDisposition.FileName = "exported.pdf"
resp.Headers.CacheControl = New CacheControlHeaderValue() With {.Private = True}

根据我的阅读,Cache-Control标头是此问题的根源。该当前解决方案间歇性地工作。这在IE8和IE10中正在发生。有什么建议? “Internet选项”中的设置是正确的。

我正在考虑的一些选择是:

  1. 设置MaxAge
  2. 将Pragma标头设置为专用
  3. 按特定顺序为Cache-Control设置no-store,no-cache。
  4. 这些实际上是否有效?

2 个答案:

答案 0 :(得分:1)

设置缓存控制标题应该有效,请参阅以下答案:https://stackoverflow.com/a/15687482/482390

当你说它是断断续续的时候我不确定它是在同一个浏览器和一个用户还是多个用户上;我们遇到了类似的问题,这是由于某些用户在Internet Explorer 9中选中了特定设置("不将加密的页面保存到磁盘"),此设置位于Internet选项的“高级”选项卡下,以下文章介绍了如何修改此设置http://support.microsoft.com/kb/2549423

的问题

答案 1 :(得分:-1)

我们只是升级到Internet Explorer 10来解决此问题。我认为这是Request标题的问题,但我没有使用正确的组合来满足Internet Explorer 8的要求。