Microsoft ReportViewer: ошибки сеанса истекли - PullRequest
19 голосов
/ 07 октября 2008

Проект ASP.NET 2.0, мне никогда не удавалось воспроизвести это самому, но я получаю электронные письма, информирующие меня, что это происходит с клиентами много раз в неделю, часто несколько раз подряд.

Вот полная ошибка:

Сведения об исключении:

Microsoft.Reporting.WebForms.AspNetSessionExpiredException: сеанс ASP.NET истек

Трассировка стека:

[AspNetSessionExpiredException: сеанс ASP.NET истек] в Microsoft.Reporting.WebForms.ReportDataOperation..ctor () в Microsoft.Reporting.WebForms.HttpHandler.GetHandler () в Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest (контекст HttpContext) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () в System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логический и завершен синхронно) Объекты сеанса: 75de8e1d65ff40d1ba666d940af5b118: Microsoft.Reporting.WebForms.ReportHierarchy 5210064be1fa4d6abf5dd5e56b262974: Microsoft.Reporting.WebForms.ReportHierarchy

Ответы [ 6 ]

11 голосов
/ 07 октября 2008

У нас была такая же проблема. До сих пор мы нашли его только по истечении сеанса, но они использовали кнопку «Назад» в браузере, который выполняет агрессивное кэширование, и это нормально. Но ReportViewer попытался обновить, хотя главная страница этого не сделала. Итак, мы только что добавили хакерскую обработку ошибок Global.asax:

protected void Application_Error(object sender, EventArgs e)
{
    Exception exc = Server.GetLastError().GetBaseException();
    if (exc is Microsoft.Reporting.WebForms.AspNetSessionExpiredException)
    {
        Server.ClearError();
        Response.Redirect(FormsAuthentication.LoginUrl + "?ReturnUrl=" + HttpUtility.UrlEncode(Request.Url.PathAndQuery), true);
    }
}
3 голосов
/ 27 октября 2008

Время ожидания сеанса

Это может быть связано с тем, что время ожидания вашего сеанса слишком мало. Проверьте раздел "sessionState" вашего Web.Config, например, : -

<system.web><sessionState mode="InProc" timeout="60" /></system.web>

Что бы установить время ожидания сеанса 60 минут.

Повторное использование пула приложений

Другая возможная причина, с которой мы столкнулись, заключается в том, что ваш пул приложений по какой-то причине перерабатывается.

На всякий случай, потому что мы использовали настройку «Максимальная виртуальная память», я просто поднял ее, и с тех пор все в порядке.

Просмотрите в журнале системных событий события 1010, 1011, 1074, 1077, 1078, 1079, 1080 и 1117 от W3SVC и посмотрите, перерабатывается ли пул приложений, и если да, то в нем должно быть указано, почему.

2 голосов
/ 21 сентября 2010

Вот мое исправление.

Запуск IIS на веб-ферме, и каждая ферма имеет счетчик веб-садов = 3 каждый,

Я просто создал отдельный пул приложений только для отчетов sql и установил значение подсчета веб-ресурсов = 1 для этого пула отчетов.

затем создал виртуальный каталог в IIS и отдельный проект для отчетов - используя этот пул отчетов

проблема решена.

1 голос
/ 09 октября 2012

У меня была эта проблема при разработке на моем собственном ПК, и я не мог найти ответ нигде в сети. Оказалось, что один из моих товарищей по команде добавил это в web.config:

<httpCookies httpOnlyCookies="false" requireSSL="true" />

Таким образом, web.config на рабочем столе разработчика не должно иметь тега, а файлы DEV / QAS и Prod web.config должны иметь его.

Я также понимаю, что разработчики могут использовать IIS Express, а затем они могут использовать SSL локально.

0 голосов
/ 08 марта 2012

web gardern count=1 У меня работает

0 голосов
/ 07 октября 2008

В чем вопрос? Сессия истекла, и они не могут продолжаться.

Проверьте скорость обработки отчета. Создайте какой-нибудь эталонный тест или просто попросите их измерить обработку отчета.

Вполне возможно, что он работает для вас, но не для них (медленная сеть, больше данных для обработки, медленный сервер БД и т. Д.).

Редактировать: Вот другое объяснение и, возможно, решение проблемы, но я не рекомендую устанавливать номер рабочего процесса равным 1 в среде обработки.

...