Мне нравится размещать веб-приложение asp.net в IIS 7.0 (сервер Windows 2008).
Я настроил состояние сеанса как sessionstate mode = "inproc" timeout = 120. Даже сеанс истекает в течение 15 секунд. В чем может быть проблема?.
Спасибо
Мне нравится размещать веб-приложение asp.net в IIS 7.0 (сервер Windows 2008).
Я настроил состояние сеанса как sessionstate mode = "inproc" timeout = 120. Даже сеанс истекает в течение 15 секунд. В чем может быть проблема?.
Спасибо
Проверьте журнал событий Windows, чтобы убедиться, что рабочий процесс не перезапускается принудительно.
В вашем коде может быть что-то, что заставляет рабочий процесс принудительно перезапускать себя, и в этом случае, когда сеанс сохраняется в Proc, он теряет все значения сеанса, которые он хранит.
Вы можете проверить время ожидания соединения в этих двух областях.
OR
похоже, что тайм-аут сеанса установлен неправильно в web.config, вы можете попробовать что-то вроде:
<system.web>
<sessionState timeout="2" />
чтобы установить тайм-аут на 2 минуты
http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.71).aspx
Ммеррелл написал это и является ключом к поиску причины проблемы:
Проверьте журнал событий Windows, чтобы убедиться, что рабочий процесс не перезапускается принудительно.
В вашем коде может быть что-то, что заставляет рабочий процесс принудительно перезапускать себя, и в этом случае, когда сеанс сохраняется в Proc, он теряет все значения сеанса, которые он хранит.
Посмотрите на средство просмотра событий в «Журналы / система Windows», вы ищете исходное событие «WAS», которое содержит описание вида: «Рабочий процесс с идентификатором процесса 2980, обслуживающий пул приложений« SIAC », был отключен из-за бездействие. Конфигурация тайм-аута пула приложений была установлена на 20 минут. При необходимости будет запущен новый рабочий процесс ». это симптом, который вы ищете.
Просмотр событий с событием WAS
Надеюсь это поможет.
Была почти такая же проблема с обработчиком HTTP, написанным на C # с использованием SessionState. Кажется, свойство IsReusable должно быть ложным, иначе я столкнулся с проблемой потери сеанса.
Спасибо, Mmerrell за его ответ, который привел меня на правильный путь.
Есть еще кое-что, что нужно проверить - Расширенные настройки пула приложений - Ограничение виртуальной памяти. Посмотрите, установлен ли он явно - поскольку он может автоматически перерабатываться после превышения установленного лимита. Особенно, если вы видите ошибку в журнале событий, например:
Рабочий процесс с идентификатором процесса «****», обслуживающий пул приложений «your-app-pool-name», запросил повторный цикл, поскольку достиг предела виртуальной памяти.