как установить сеанс никогда не истекает в ASP - PullRequest
3 голосов
/ 06 июня 2009

Я использую ASP classic (1.1) с IIS 6.0. Есть ли варианты, чтобы установить сессию никогда не истекает?

спасибо заранее, George

Ответы [ 2 ]

3 голосов
/ 06 июня 2009
Session.Timeout=5

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

2 голосов
/ 06 июня 2009

Вы можете указать значение Session.Timeout в минутах. Либо ваши страницы опрашивают сервер каждые n минут (это будет делать функция javascript, либо вы можете использовать фиктивный iframe с refresh-content, настроенный на вызов фиктивной страницы asp каждые n минут).

Это лучше (хотя опрос может облагаться налогом на вашем сервере, не опрашивайте слишком часто), потому что, если вы установите очень большое (или бесконечное ...) значение времени ожидания сеанса, вы получите сбой asp с ошибкой нехватки памяти (я думаю, пул приложений будет перезапущен).

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

Нет необходимости в бесконечном сеансе (его можно решить с помощью опроса), а настройка параметра timeout сделает ваше приложение более хрупким.

Если вы хотите хранить информацию в течение длительного времени (в основном, на протяжении всей жизни вашего приложения), вам лучше использовать объект Application, который представляет собой словарь, такой же, как Session, но является одноэлементным и доступ к которому может получить любой на сервере.

...