.net - Internet Explorer 通过 SSL Web API 出现间歇性 'Unable to download' 错误

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

我们一直在为这个问题绞尽脑汁,我假设这与响应 header 有关。间歇性的“无法下载”对话框让我猜测到底是什么问题,因为我看到的大多数其他问题似乎都是全有或全无的问题。

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

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 header 是此问题的根源。当前的解决方案间歇性地工作。这现在发生在 IE8 和 IE10 中。有什么建议么? Internet 选项中的设置正确。

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

  1. 设置最大年龄
  2. 将 Pragma header 设置为私有(private)
  3. 以特定顺序为 Cache-Control 设置 no-store、no-cache。

这些是否真的有效?

最佳答案

设置缓存控制 header 应该有效,请参阅以下答案了解如何操作 https://stackoverflow.com/a/15687482/482390 .

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

关于.net - Internet Explorer 通过 SSL Web API 出现间歇性 'Unable to download' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989280/

相关文章:

c# - 在 C#/.NET 中将参数标记为 NOT nullable?

.net - 简单的 CefSharp 应用程序在运行时缺少文件

c# - 如何在 C# 中读取 PowerPoint 幻灯片中的复杂方程式

javascript - 全屏显示图像 - 使用 JavaScript/HTML5

php - 我的网站无法在 IE 中打开

c# - .NET 的谷歌 API/OAuth2 : dll integration/version issue

windows - 传递给 mshtml.dll 的参数是什么?

php - 为什么我网站上的所有 html 表单都禁用了 Internet Explorer 自动完成功能?

ios - 如何使用 osx/iOS native 安全框架创建 PKCS12 blob?

iis - 在开发中使用自签名客户端证书