Исполнение 'iwy2vpzo52pmp555ftfn4455' не может быть найдено (rsExecutionNotFound) - PullRequest
5 голосов
/ 12 января 2010

Некоторые пользователи получают следующую ошибку при запуске отчетов.

• Невозможно найти выполнение 'iwy2vpzo52pmp555ftfn4455' (rsExecutionNotFound)

Они бегают хорошо по утрам. Есть предложения?

Спасибо

Ответы [ 6 ]

5 голосов
/ 20 сентября 2010

Я могу помочь.

Проблема в том, что элемент управления ReportViewer использует Session для хранения текущего выполняемого отчета. После перехода от отчетов этот элемент все еще остается и в конечном итоге теряет свой «контекст выполнения», что позволяет серверу отчетов кэшировать отчеты.

Поэтому перед просмотром отчета вы должны попытаться очистить сеанс этих отчетов, чтобы в сеансе НЕТ кэшированных отчетов, и элемент управления ReportViewer мог работать правильно.

Вы также обнаружите, что иногда при доступе к Session.Keys.Count эта ошибка может возникать, так как опять контекст выполнения не удался.

Убедитесь, что вы делаете это на странице с отчетом !!

2 варианта:

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

Или

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++;
}
3 голосов
/ 14 ноября 2017

Я использую SSRS 2017 и столкнулся с этой проблемой при попытке загрузить отчет в мой проект MVC с помощью URL Access. Вопрос для меня был связан с сессией.

Чтобы проверить это самостоятельно, попробуйте удалить файл cookie RSExecutionSession и перезагрузить отчет. К сожалению, это только временное исправление.

Если это работает, попробуйте добавить rs:ClearSession=true в строку запроса.
Вы можете прочитать об этой настройке здесь .

2 голосов
/ 07 марта 2015

Ищите завершающий пробел в пути к отчету.Это было причиной для меня.

0 голосов
/ 06 ноября 2016

Если вы используете SQL Server Express, агент SQL Server не работает для очистки старых сеансов SSRS. Вам нужно будет выполнить задание в базе данных SSRS для очистки старых сеансов.

Мой отчет занял 10 секунд, а экспорт - 2 секунды, так что это никак не связано с продолжительностью окончания сеанса.

Я получаю сообщение об ошибке при экспорте отчета в Excel в свое приложение через час после экспорта отчета.

0 голосов
/ 27 октября 2016

Эта ошибка приводила к тому, что мое приложение отображало ошибку времени выполнения.

Я добавил это в класс Global.asax, чтобы устранить ошибку. Пробовал Server.Clear но ничего не получил. Session.Clear полностью избавился от ошибки.

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

Хотя это не может быть на 100% применимо к вышеуказанному вопросу, я не смог найти другое решение.

0 голосов
/ 07 февраля 2013

На подражании web.config используйте идентификатор

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

вместо: !--<identity impersonate="true"

Надеюсь, это поможет

...