Спорадические данные для каждого сеанса пользователя, потерянные в IIS 6 до тайм-аута сеанса, требуется какое-то решение

#asp.net #iis #session

#asp.net #iis #сеанс

Вопрос:

У меня есть 2 сервера IIS, использующих IIS 6.0 на Windows Server 2003. Мы используем «циклический» подход к балансировке сети. Пользователь, получивший один сервер, останется там. Мы используем управление состоянием InProc. Наше время ожидания сеанса составляет 120 минут, что также позволяет использовать некоторые страницы форм, где ввод требуемых данных может занять более 90 минут. Вот что происходит: в некоторых случаях пользователь потеряет сеанс во время работы со страницей, которая была открыта где-то от 2 минут до 60 минут. В других случаях сеанс поддерживается просто отлично. Мы видим, что сеанс потерян, потому что для коллекции объектов возвращено значение null, а также целое число, которое мы используем для отслеживания того, какой раздел нашего веб-сайта пользователь использует в данный момент.

Я прочитал о трех доступных встроенных серверах состояния и даже переключил один из наших серверов на использование локального сервера состояния, что фактически увеличило количество ошибок, которые мы получали.

Кроме того, мы получаем эту же проблему на нашем сервере контроля качества, который является IIS 7.5 на Windows Server 2008.

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

Любая помощь или информация приветствуются.

Ответ №1:

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

Я бы подумал о переходе на использование диспетчера состояния сеанса SQL вне процесса, если вы ожидаете, что пользователи будут сидеть, уставившись на одну страницу дольше обычного. промежутки времени. Использование диспетчера состояния сеанса SQL также гарантирует, что сеансы вашего пользователя выживут при случайных или иных IISRESET перезапусках / переработке пула.