在我的本地计算机和测试站点上,一切正常。测试和生产站点都安装了证书。 pdf报告中还有一个嵌入的图像。我不确定为什么它在生产中不起作用而不是测试站点。在生产中,它会下载一个空白的pdf文件。
这是代码:
ReportDataSource reportDataSource = new ReportDataSource("objDataSet", models);
localReport.DataSources.Add(reportDataSource);
string reportType = "PDF";
string mimeType;
string encoding;
string fileNameExtension;
//The DeviceInfo settings should be changed based on the reportType
//http://msdn2.microsoft.com/en-us/library/ms155397.aspx
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>PDF</OutputFormat>" +
" <PageWidth>8.5in</PageWidth>" +
" <PageHeight>11in</PageHeight>" +
" <MarginTop>0.5in</MarginTop>" +
" <MarginLeft>0.75in</MarginLeft>" +
" <MarginRight>0.75in</MarginRight>" +
" <MarginBottom>0.5in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
string[] streams;
byte[] renderedBytes;
//Render the report
renderedBytes = localReport.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename=abc." + fileNameExtension);
Response.BinaryWrite(renderedBytes); // create the file
Response.Flush(); // send it to the client to download
return null;
来自Fiddler Raw标题:
PRO:
HTTP / 1.1 200好的 X-AspNetMvc-Version:3.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 内容类型:application / pdf 内容 - 性格:附件;文件名= abc.pdf 日期:2012年5月23日星期三格林尼治标准时间14:19:59 内容长度:23975 ETag:“pv11fd8c346df09ccc63c9a6c72b8b776d” Cache-Control:private,s-maxage = 0 X-PvInfo:[S10201.C11680.A12679.RA12754.G0.U59AB06B0]。[OT / pdf.OG / documents]
UAT:
HTTP / 1.1 200好的 缓存控制:无缓存 内容类型:application / pdf X-AspNetMvc-Version:3.0 内容 - 性格:附件;文件名= abc.pdf X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 日期:2012年5月23日星期三格林尼治标准时间14:59:46 连接:关闭 内容长度:23681
mime类型设置为.pdf:application / pdf
我注意到一个有趣的事情是pdf(23 KB)的文件大小与我从测试网站获得的文件大小差不多只有一个pdf是完全空白而另一个填充了数据。