【问题标题】:ReportViewer rendering hangs server after some executionsReportViewer 渲染在一些执行后挂起服务器
【发布时间】:2018-07-02 08:26:18
【问题描述】:

我有一个生成报告的服务。那部分的代码是这样的

ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSetDIR";
rds.Value = dataSource;                    
using (ReportViewer rv = new ReportViewer()){
    rv.LocalReport.DataSources.Clear();
    rv.LocalReport.DataSources.Add(rds);
    rv.LocalReport.ReportEmbeddedResource = "xxxxxx.rdlc";
    rv.LocalReport.Refresh();
    byteViewer = rv.LocalReport.Render("PDF");                        
    rv.LocalReport.Dispose();
}

在我的计算机上它运行良好,但我已将它发布到服务器上并且运行良好......但仅在几次执行期间(在我完成的不同测试中它可以从 5 到 25 不等)

之后一直挂在这一行:

byteViewer = rv.LocalReport.Render("PDF");

为了让它再次工作(直到它再次挂起),我必须重新启动应用程序池

PD:出现此问题后,当我尝试重新启动应用程序池时,会显示此错误

我必须去服务并重新启动凭据管理器才能重新启动应用程序池

知道为什么会发生这种情况,我该如何解决?

【问题讨论】:

    标签: .net reportviewer


    【解决方案1】:

    我找到了解决办法。

    我只需要直接调用 LocalReport,问题就消失了。

    using (LocalReport lr = new LocalReport()){
        lr.DataSources.Clear();
        lr.DataSources.Add(rds);
        lr.ReportEmbeddedResource = "xxxxxx.rdlc";
        lr.LocalReport.Refresh();
        byteViewer = lr.Render("PDF");
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      相关资源
      最近更新 更多