问题
I have a service that generates a Report. The code for that part is like this
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();
}
On my computer it works OK, but I have published it on the server and it works OK...but only during a few executions (it can vary from 5 to 25 in differents tests I've done)
After that, it always hangs on this line:
byteViewer = rv.LocalReport.Render("PDF");
To make it work again (until it hangs again), I have to restart Application Pool
PD: After this problem appears, when I try to restart the Application Pool this error is show
And I have to go to the services and restart the Credential Manager to be able to restarte the ApplicationPool
Any idea why this is happening and how can i solve it?
回答1:
I found the solution.
I only had to call the LocalReport directy and the problem dissapears.
using (LocalReport lr = new LocalReport()){
lr.DataSources.Clear();
lr.DataSources.Add(rds);
lr.ReportEmbeddedResource = "xxxxxx.rdlc";
lr.LocalReport.Refresh();
byteViewer = lr.Render("PDF");
}
来源:https://stackoverflow.com/questions/48403053/reportviewer-rendering-hangs-server-after-some-executions