Execution 'iwy2vpzo52pmp555ftfn4455' cannot be found (rsExecutionNotFound)

爱⌒轻易说出口 提交于 2019-12-30 09:38:01

问题


Some users get the following error when running reports.

• Execution 'iwy2vpzo52pmp555ftfn4455' cannot be found (rsExecutionNotFound)

They run fine in the morning. Any suggestions?

Thank you


回答1:


I can help.

The problem is that the ReportViewer control uses Session to store the currently executing report. Once you navigate away from the reports, the item still remains and eventually loses its "execution context", which is the way Report Server caches reports.

Therefore, before browsing a report, you should attempt to clear out the Session of these reports, so that there are NO cached reports in the Session, and the ReportViewer control can work properly.

You will also find that sometimes when accessing Session.Keys.Count, this error can occur, as again, the execution context has failed.

Make sure you do this on the page showing the report!!

The 2 options are:

if (!IsPostBack)
{
    HttpContext.Current.Session.Clear();
    ReportViewer1.ServerReport.ReportServerUrl = new Uri(ReportServerUrl, System.UriKind.Absolute);
    ReportViewer1.ServerReport.ReportPath = ReportPath;
    System.Collections.Generic.List<ReportParameter> parameters = new System.Collections.Generic.List<ReportParameter>();
    ....

    ReportViewer1.ServerReport.SetParameters(parameters);
    ReportViewer1.ServerReport.Refresh();
}

Or

for (int i = 0; i < HttpContext.Current.Session.Keys.Count; )
{
   if (HttpContext.Current.Session[i].ToString() == "Microsoft.Reporting.WebForms.ReportHierarchy")
       HttpContext.Current.Session.RemoveAt(i);
   else
      i++;
}



回答2:


I am using SSRS 2017 and was running into this issue when trying to load a report into my MVC project using URL Access. The issue for me had to do with session.

To check this for yourself, you can try deleting the RSExecutionSession cookie and reload your report. Unfortunately, this is only a temporarily fix.

If this does work, try adding rs:ClearSession=true to your query string.
You can read about this setting here.




回答3:


Look for a trailing space on the report path. This was the cause for me.




回答4:


On the web.config's impersonation, use identity

impersonate="true" 
userName="xxxxx" 
password="xxxxx"  

instead of : !--<identity impersonate="true"

Hope it helps




回答5:


If you're running SQL Server Express edition, the SQL Server Agent isn't running to clean up your old SSRS sessions. You'll need to run a job on SSRS DB to clean up the old sessions.

My report took 10 seconds to run and 2 seconds to export - so it wasn't to do with the session expiry length.

I'd get the error when exporting a report to excel into my app an hour after I exported the report.




回答6:


This error was causing my application to display a run time error.

I added this to the Global.asax class to resolve the error. Tried Server.Clear but got nothing. Session.Clear got rid of the error completely.

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    If ex.InnerException IsNot Nothing Then
            If ex.InnerException.ToString.Contains("The report execution") AndAlso
               ex.InnerException.ToString.Contains("rsExecutionNotFound") Then
                Session.Clear()
                Return
            End If
        End If
End Sub

While it may not be 100% applicable to the question above, I haven't been able to find any other resolution.



来源:https://stackoverflow.com/questions/2050593/execution-iwy2vpzo52pmp555ftfn4455-cannot-be-found-rsexecutionnotfound

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!