2009-06-04 2 views
4

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

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

Благодаря

ответ

7

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

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

10

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

enter image description here

ИЛИ

Advanced settings

+1

Я думаю, что таймаут сеанса и тайм-аут соединения - это две разные вещи, но это хорошо знать. – Jerther

4

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

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

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

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

Event viewer with the WAS event

Надеется, что это помогает.

1

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

Thanks Mmerrell за отзыв, которые привели меня на правильный путь.

0

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

Рабочий процесс с идентификатором процесса в пуле приложений «****» «ваш-приложение-пул-имя» запросил переработку, поскольку он достиг своего ограничение виртуальной памяти.

Смежные вопросы