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

ReportViewer rendering a empty PDF (Just one white page)

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

因为在 MVC 中与 ReportViewer 的兼容性较低或 none,使用 Chrome 和 Firefox,我的方法是在 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 中工作)?

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

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

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