【发布时间】:2012-01-25 04:56:20
【问题描述】:
我在网站上有一个部分,我在灯箱内显示 pdf。最近的 chrome 升级打破了这个显示:
错误 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): 收到多个 Content-Disposition 标头。这是不允许的 防止 HTTP 响应拆分攻击。
这在 IE 中仍然可以正常工作。
我在 IIS6 上使用 ASP.NET MVC3
我用来生成文件的代码如下。
如果我删除内联语句,则文件会下载,但这会破坏灯箱功能。
问题代码
public FileResult PrintServices()
{
//... unrelated code removed
MemoryStream memoryStream = new MemoryStream();
pdfRenderer.PdfDocument.Save(memoryStream);
string filename = "ServicesSummary.pdf";
Response.AppendHeader("Content-Disposition", "inline;");
return File(memoryStream.ToArray(), "application/pdf", filename);
}
修复
删除
Response.AppendHeader("Content-Disposition", "inline;");
然后改变
return File(memoryStream.ToArray(), "application/pdf", filename);
到
return File(memoryStream.ToArray(), "application/pdf");
【问题讨论】:
-
只是问一下文件名中是否有逗号,因为我只是有这个问题。如果是这样,请从文件名中删除任何逗号(如果这是一个选项)。
标签: asp.net-mvc-3 google-chrome iis-6