在 asp.net 中使用报表查看器加载多个报表时出现延迟

本文关键字:报表 加载 延迟 net asp | 更新日期: 2023-09-27 17:56:18

在多个弹出窗口中动态加载报表查看器中的 SSRS 报表时,我遇到了严重的延迟。一旦第一个报告完全加载,那么即使我并行打开报告,也只有这样,下一个报告才会开始处理。因此,如果在之前打开长时间运行的报告,我必须等待很长时间才能加载小报告。它不是并行加载的。我对此进行了一些研究,并从下面的链接中了解到ReportViewer会阻止会话以加载每个报告。

http://www.networksteve.com/enterprise/topic.php/Multiple_report_viewers_on_one_page_issue/?TopicId=56213&Posts=5

谁能帮我解决这个问题。有什么解决方案吗?

我正在使用Microsoft.ReportViewer.WebForms Version=11.0.0.0和带有VS 2012的Framework 4.5。报表查看器处于服务器模式。请参阅下面的代码

reportViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
reportViewer.ServerReport.ReportServerUrl = new Uri(ReportServer);
reportViewer.ServerReport.ReportPath = ReportPath.Trim();
reportViewer.SizeToReportContent = true;
reportViewer.ServerReport.Refresh();

在 asp.net 中使用报表查看器加载多个报表时出现延迟

也许将

处理分解为多个线程可能是答案。创建一个您必须获取的报告列表,然后像这样使用 Parallel 类......

Parallel.ForEach(reports => report
{
    // code for rendering your report
});

同样,您还可以为每个报告创建一个Action委托,并将其简化为...

Parallel.ForEach(reports => report.Invoke());