Execution 'iwy2vpzo52pmp555ftfn4455' canno

2020-03-24 03:07发布

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

6条回答
干净又极端
2楼-- · 2020-03-24 03:35

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++;
}
查看更多
Evening l夕情丶
3楼-- · 2020-03-24 03:40

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.

查看更多
冷血范
4楼-- · 2020-03-24 03:43

On the web.config's impersonation, use identity

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

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

Hope it helps

查看更多
来,给爷笑一个
5楼-- · 2020-03-24 03:52

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

查看更多
三岁会撩人
6楼-- · 2020-03-24 03:53

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.

查看更多
爷、活的狠高调
7楼-- · 2020-03-24 04:02

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.

查看更多
登录 后发表回答