在SSL下的Safari上,Response.TransmitFile失败

时间:2012-03-09 14:59:48

标签: .net file safari

我们有一个用户可以下载PDF文档的下载页面。此页面目前作为HTTPS提供。在Safari only (Windows和Mac)下,下载3/4后,下载将失败99%(一旦在蓝色的月亮中,它将起作用)。如果我们用“http”替换URL的“https”部分,问题会立即消失。

代码如下,我相信标准的.NET文件输出:

string pdfFile = // generate file here and get the path...
var info = new FileInfo(pdfFile);
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", string.Format("attachment;Filename={0}", info.Name);
Response.TransmitFile(pdfFile);
Response.Flush();
Response.Close();

此问题在Safari中仅 ; IE,Firefox和Chrome每次都正确下载文件。 Safari失败了9/10次。

有什么想法吗?我们每个月有大约4,000名访问者访问该网站,所以这不是我们可以忽略的。

1 个答案:

答案 0 :(得分:0)

你总是可以尝试使用response.writefile(想想这首先加载到服务器上的内存中作为传递文件的附件),看它是否有帮助。