0

Недавно я попытался использовать веб-часть Report Viewer на странице SharePoint. Отчеты использовались вне SharePoint в течение многих лет. Мы в настоящее время на SSRS 2008 R2 нативный режим и SharePoint 2007. Через некоторое время, когда вы идете на страницу с веб-частями, вы просто получите ошибку:Использование веб-части средства просмотра отчетов SharePoint: ошибка при получении данных сеанса: недопустимый или истекший сеанс: xxxxxxxxxxx

The report execution yoty4kmgk3hjr5uup1ng0a45 has expired or cannot be found. (rsExecutionNotFound) 

и в SSRS вас в журнал получить:

library!ReportServer_0-33!13bc!10/28/2013-11:09:45:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: , An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database.; 
session!ReportServer_0-33!13bc!10/28/2013-11:09:45:: e ERROR: Error in getting session data: Invalid or Expired Session: yoty4kmgk3hjr5uup1ng0a45 
session!ReportServer_0-33!13bc!10/28/2013-11:09:45:: i INFO: LoadSnapshot: Item with session: yoty4kmgk3hjr5uup1ng0a45, reportPath: , userName: DOMAIN\USER not found in the database 
library!ReportServer_0-33!13bc!10/28/2013-11:09:45:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: , Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: The report execution yoty4kmgk3hjr5uup1ng0a45 has expired or cannot be found.; 
library!ReportServer_0-33!f84!10/28/2013-11:09:45:: i INFO: RenderForNewSession('/PATH/REPORT') 

Теперь я точно знаю, что это такое. Мы получаем это все время. Когда вы запускаете отчет, SSRS принимает временный снимок и связывает его с вашим сеансом, а затем отображает снимок в браузер. Если вы разрешите отчету сидеть в браузере достаточно долго, время сеанса и временный снимок будут уничтожены. Если вы вернетесь и попытаетесь взаимодействовать с отчетом, вы получите эту ошибку, потому что сеанс исчез. Когда это происходит в браузере, вы можете просто вернуться к диспетчеру отчетов и повторно запустить отчет, чтобы получить новый сеанс и моментальный снимок.

Сейчас моя творческая команда работает над макетом и дизайном SharePoint. Они работают, по крайней мере, с тремя страницами примеров, каждый из которых содержит те же два отчета SSRS в экземпляре веб-части Report Viewer. Отчеты обычно отображаются при первоначальном размещении на странице. Однако, после того, как SSRS закончит сеанс, веб-часть покажет, что сеанс не найден. Каждая страница устанавливает другой сеанс для одного и того же отчета, поэтому будет открыто несколько сеансов, и отчет будет отображаться на одной странице после того, как он начнет показывать ошибку на другой.

Сообщение абсолютно верно, сессия не существует. Сеансы временны, с таймаутом 600 секунд. Это ожидаемое поведение. Итак, почему экземпляр веб-части на странице все еще держится на мертвой сессии? Если вы перейдете от страницы, а затем вернитесь или обновите страницу, почему веб-часть просмотра отчетов SharePoint не будет выполнять отчет и получить новый идентификатор выполнения? Является ли веб-часть недостаточно интеллектуальной, чтобы знать, что происходит? Есть ли ожидание времени жизни экземпляра, которое не выполняется?

Итак, вопрос в том, как мы можем хорошо себя вести в веб-части SSRS SharePoint? В контексте SharePoint пользователь должен иметь возможность открывать страницу и взаимодействовать с содержимым на ней, не осознавая, откуда идет контент или как он туда попадает, опыт должен быть бесшовным и прозрачным. В этом случае веб-часть кэширует сеанс на сервере SharePoint [я думаю], поэтому, когда SSRS убивает сеанс, представление в SharePoint просто выводит ошибку, и мы не нашли способ обновить его.

Есть ли способ решить эту проблему?

ответ

0

Попробуйте увеличить тайм-аут ssrs. Я столкнулся с той же проблемой, что и я использую ssrs url в своем веб-приложении asp.net для создания отчета. Если я оставлю свою страницу открытой в течение некоторого времени и вернусь к ней, я получаю ту же ошибку, что и «Исполнение отчета истекло». Я пробовал разные варианты, включая добавление & rc: UniqueGuid = newguid к URL-адресу ssrs, но без помощи.

Смежные вопросы