ReportViewer呈现空PDF(只需一个白页)

时间:2015-10-22 14:12:21

标签: c# .net asp.net-mvc pdf report-viewer2010

我有一个Asp.Net MVC 4项目,我正在使用ReportViewer生成一些报告。

由于MVC中使用Chrome和Firefox与ReportViewer的兼容性很低或没有兼容性,我的方法是在PDF流中呈现ReportViewer并简单地返回流如下:

// using Microsoft.ReportViewer.WebForms.dll [10.0.0.0].

using (var viewer = new ReportViewer())
using (var bc = new MyBusinessClass())
{
    viewer.LocalReport.ReportEmbeddedResource = @"MyEmbeddedName";

    var dsobj = bc.GetData();

    var ds = new ReportDataSource("DsName", dsobj);
    var ps = new ReportParameterCollection();

    ps.Add(new ReportParameter("ParameterName", DateTime.Now));

    viewer.LocalReport.DataSources.Add(ds);
    viewer.LocalReport.SetParameters(ps);

    string deviceInfo = "some validated info";
    string mimeType, encoding, fileNameExtension;
    string[] streams;
    Warning[] warnings;

    var buffer = viewer.LocalReport.Render("PDF", deviceInfo,
        out mimeType, out encoding, out fileNameExtension,
        out streams, out warnings);

    return File(new MemoryStream(buffer), "application/pdf", "MyPdfName.pdf");
}

我已经有一些报告,所有报告都很好。但是现在我正在使用相同的方法创建一个新的,但是当我打开动作时,PDF是空的,即它只是一个页面,此页面中没有任何内容(空白)。

但如果这不够奇怪,现在我使用浏览器IE(9)测试相同,并且报告呈现得很好,所以我决定尝试使用FireFox并且什么都没得到。

问题:

所以这就是我不明白的地方,我在回归之前用PDF格式进行渲染,为什么浏览器可以影响这个呢?

如果出现任何问题,是否可以强制ReportViewer抛出异常? '因为现在,不要只是空页错误。

最重要的是,如何解决此问题(在Chrome中工作)?

1 个答案:

答案 0 :(得分:1)

这似乎是最新版Chrome中的一个错误。它于2015年10月14日报道,并且似乎在最近的版本中得到修复。

对我来说,更新到Chrome 46.0.2490.80解决了这个问题。

来源:https://code.google.com/p/chromium/issues/detail?id=543018