我有同样的问题,无法提供一个好的解决方案(除了 Tood 建议的,这是一个选项)。但是看看 fiddler & co. 的情况,我有更多信息可能会有所帮助。
我们的应用程序正在动态创建 PDF 文档并提供下载。该问题显然与数据有关,这意味着某些生成的文件在第一次尝试时下载良好,而另一些则需要重试。
据我所知,Fiddler 显示服务器响应在每次访问时都是相同的。但是,请求有所不同(样本略有编辑):
第一个请求:
GET http://localhost:12345/Item/PDF/id HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: ...
Accept-Language: ...
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost:12345
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=52znkt1fcisrolj44tnuyzu4
第二个请求:
GET http://localhost:12345/Item/PDF/id HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: localhost:12345
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=52znkt1fcisrolj44tnuyzu4
请注意,第二个请求如何将 'Accept:' 标头减少为*/*
. 我不愿意在 URL 中添加文件扩展名的原因是建议的下载名称是从项目数据生成的,与响应一起提交,否则与 ID 完全无关。