Время сеанса в IIS 7 - PullRequest
       60

Время сеанса в IIS 7

4 голосов
/ 04 июня 2009

Мне нравится размещать веб-приложение asp.net в IIS 7.0 (Windows Server 2008).

Я настроил состояние сеанса как sessionstate mode = "inproc" timeout = 120. Даже сеанс истекает в течение 15 секунд. В чем может быть проблема?.

Спасибо

Ответы [ 6 ]

10 голосов
/ 13 апреля 2012

Вы можете проверить время ожидания соединения в этих 2 областях. enter image description here

enter image description here

OR

Advanced settings

7 голосов
/ 18 июня 2009

Проверьте журнал событий Windows, чтобы убедиться, что рабочий процесс не принуждается к повторной очистке.

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

6 голосов
/ 04 июня 2009

звучит так, как будто тайм-аут сеанса установлен неправильно в web.config, вы можете попробовать что-то вроде:

<system.web>
    <sessionState timeout="2" />

для установки времени ожидания 2 минуты

http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.71).aspx

4 голосов
/ 22 февраля 2016

Ммеррелл написал это и является ключевым, чтобы найти источник проблемы:

Проверьте журнал событий Windows, чтобы убедиться, что рабочий процесс не быть вынужденным переписать.

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

Посмотрите в окне просмотра событий в «Журналы / система Windows», вы ищете событие источника «WAS», которое содержит описание, подобное: «Рабочий процесс с идентификатором процесса« 2980 », обслуживающий пул приложений« SIAC », был отключен из-за неактивности. Конфигурация тайм-аута пула приложений была установлена ​​на 20 минут. Новый рабочий процесс будет запущен при необходимости». это симптом, который вы ищете.

Просмотр событий с событием WAS

Надеюсь, это поможет.

1 голос
/ 08 октября 2016

Была почти такая же проблема с обработчиком HTTP, написанным на C # с использованием SessionState. Кажется, свойство IsReusable должно быть ложным, в противном случае я работал в проблеме потери сеанса.

Спасибо Ммеррелл за его Ответ, который привел меня на правильный путь.

0 голосов
/ 03 февраля 2018

Есть еще одна вещь, которую нужно проверить - Расширенные настройки пула приложений - Ограничение виртуальной памяти. Посмотрите, установлен ли он явно - так как он может перезапускаться автоматически после превышения установленного лимита. Особенно, если вы видите ошибку в журнале событий, например:

Рабочий процесс с идентификатором процесса '****', обслуживающим пул приложений 'your-app-pool-name', запросил перезапуск, поскольку достиг своего предела виртуальной памяти.

...