Что может привести к сбою моего отчета только в компоненте ReportViewer?

Вопрос:

Я использую SSRS для управления нашими потребностями в отчетности. Я создал первый отчет в BIDS и развернул его на сервере отчетов. Я могу запустить отчет с помощью диспетчера отчетов (на основе браузера).

По какой-то причине я не могу отобразить отчет, используя компонент Report Viewer на основе WinForms. Параметры отображаются правильно, но когда я нажимаю “Просмотр отчета”, я получаю:

Выполнение отчета….. истекло или не может быть найдено. (RsExecutionNotFound)

По этому вопросу я подозревал, что это может быть проблема с таймаутом. Но отчет работает очень быстро, и проблема не исчезает, когда я устанавливаю параметры таймаута (как на уровне отчета, так и на уровне сервера) на “Не сообщать о тайм-ауте”.

Я читал в другом месте, что проблема может быть вызвана различием в настройках часового пояса между сервером отчетов и SQL Server. Однако это не объясняет мою проблему, поскольку я все еще могу создавать отчеты с использованием интерфейса на основе браузера.

Что может привести к сбою моего отчета только в компоненте ReportViewer?


ОБНОВЛЕНИЕ. Как было предложено @lrb, я просмотрел журналы. Ошибка в компоненте Report Viewer, похоже, коррелирует со следующим:

библиотека! ReportServer_0-9! 2dcc! 07/23/2014-17: 45: 14 :: e ОШИБКА: Бросание Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException:, Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: выполнение отчета hcy3t555yc0rqp45rpovkz55 истек или не может быть найден; webserver! ReportServer_0-9! 2dcc! 07/23/2014-17: 45: 14 :: e ОШИБКА: ошибка служб отчетов Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: выполнение отчета hcy3t555yc0rqp45rpovkz55 истекло или не может быть найдено. в Microsoft.ReportingServices.WebServer.HttpClientRequest.InitForRequest(CatalogItemContext context, UserContext userCtx) в Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderReport() в Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.DoStreamedOperation (операция StreamedOperation) в Microsoft.ReportingServices.WebServer. ReportServiceHttpHandler.RenderPageContent() в Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderPage()

Для моих (по общему признанию неопытных) глаз это не более информативно, чем то, что я видел в Report Viewer; т.е. “Выполнение отчета истекло или не может быть найдено” Может быть, я что-то пропустил?

Лучший ответ:

Похоже, что переход от выбора отчета времени разработки (с использованием интеллектуального тега) к выбору времени выполнения (с использованием интерфейса SOAP) разрешил эту проблему.

Я предполагаю, что reportViewer.RefreshReport(); вызов отвечает. Это предполагает, что Report Viewer всегда будет пытаться захватить старую версию отчета, а не запрашивать новую. Поскольку увеличение таймаута не помогло, я не уверен, почему это поведение было бы полезно, но я бы с радостью был исправлен по этому вопросу.

Оцените статью
TechArks.Ru
Добавить комментарий