Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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 enter image description here

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
294 views
Welcome To Ask or Share your Answers For Others

1 Answer

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");
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...