У меня почти такая же проблема, после обновления до .NET 4.0 и Report Viewer 2010. Я сделал оба обновления одновременно, теперь я не уверен, кто виноват.В моем случае обновление работает, но пользователи сохраняют страницу открытой в течение ночи, а затем нажимают кнопку обновления на следующее утро, когда сеанс уже потерян.Наш пул приложений перезагружается каждую ночь.
Я считаю, что средство просмотра отчетов должно поддерживать сеанс, но это не так.Там нет запроса любого вида от просмотра отчетов.Затем он теряет свое сохраненное состояние по окончании сеанса либо по истечении сеанса, либо после перезапуска приложения.Я также использую InProc, я пытался изменить его, но просмотрщик отчетов не работал с State Server.Позже я попытаюсь снова отойти от InProc.
См. Мой аналогичный вопрос .
Я еще не запустил его в производство, но ядал aspx-страницам с отчетами настраиваемую страницу для извлечения, и я проверю, действительно ли время сеанса истекло.По сути, он перезагружает страницу отчета, а не выполняет обратную передачу там, где он ожидает сеанс.
if (Context.Session != null)
{
//Tested and the IsNewSession is more advanced then simply checking if
// a cookie is present, it does take into account a session timeout, because
// I tested a timeout and it did show as a new session
if (Session.IsNewSession)
{
// If it says it is a new session, but an existing cookie exists, then it must
// have timed out (can't use the cookie collection because even on first
// request it already contains the cookie (request and response
// seem to share the collection)
string cookieHeader = Request.Headers["Cookie"];
if ((null != cookieHeader) && (cookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
{
Response.Redirect(Request.Url.ToString());
}
}
}