Тайм-аут сеанса через 30 минут в asp.net - PullRequest
1 голос
/ 02 августа 2011

Я храню некоторую информацию в сеансе, но сеанс уничтожается каждый раз. Я не знаю, почему это происходит. Я использую IIS7.

Это настройка, которую я сделал:

<sessionState cookieless="AutoDetect" mode="InProc" timeout="120" />

Я храню некоторую информацию, пока пользователь регистрируется, но мой клиент жалуется, что, когда он бездействует в течение 20-30 минут, информация теряется. Я запускаю приложение в одном пользовательском пуле приложений, время простоя которого составляет 20 минут (в свойствах пула приложений). Может ли это быть проблемой?

Во-вторых, несмотря на то, что я указал время ожидания 120 минут, но когда я нажимаю на значок «Состояние сеанса» в IIS7, он нигде не показывает 120 минут. В чем может быть проблема?

Обновление: В настройках cookie в «Состояние сеанса» в IIS7 я вижу тайм-аут как 5 минут для Asp_NetSessionId. Может ли это быть виновником?

Ответы [ 3 ]

2 голосов
/ 02 августа 2011

Что ж, если ваш пул приложений будет уничтожен через 20 минут, это будет проблемой, если ваш сеанс находится в процессе. Увеличьте время ожидания пула приложений до 120 минут

1 голос
/ 02 августа 2011

Да, когда вы указываете время простоя в настройках AppPool, оно в основном убивает ваш рабочий процесс, что, в свою очередь, разрушает ваш сеанс.

Вы увидите значение на вкладке Настройки куки как один из способовобрабатывать сессию InProc через Cookies.

1 голос
/ 02 августа 2011

Если вы сохраните свой сеанс InProc, то каждые 20 минут приложение будет перезапущено, и все сеансы будут потеряны.Запустите службу StateServer и используйте

<sessionState mode="StateServer" timeout="120" />

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...