在C#/ WPF应用程序中生成RDLC报告时,有时 会在渲染时挂起(render
方法的调用不会返回)。
报告数据来自C#对象(该对象预先填充了PostgreSQL数据库中的数据),因此此问题与SQL不相关。
我想知道:
将报告生成嵌入using
块(如ReportViewer rendering hangs server after some executions所示)并不能解决问题。
using (LocalReport report = new LocalReport())
{
report.ReportPath = @"C:\Path\To\MyReport.rdlc";
// Get the report data from db and fill it into MyReportData object.
MyReportData data = CreateReportData();
ReportDataSource headerDataSource = new ReportDataSource();
headerDataSource.Name = "HeaderDataSet";
headerDataSource.Value = data.Header;
report.DataSources.Add(headerDataSource);
// Add more data sources ...
// No report parameters are being used
report.Refresh();
pdfData = report.Render("PDF"); // here it hangs sometimes
}
如上所述,render
呼叫有时会挂起。终止应用程序并再次生成完全相同的报告后,它便可以正常工作。