Как установить тайм-аут сессии больше чем 20 минут?

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

if (null != str1) {
    return str1.GetHashCode();
}
if (null != str2) {
    return str2.GetHashCode();
}
//Not sure what you would put here, some constant value will do
return 0;

, Это смещается путем предположения, что str1 вряд ли будет распространен в необычно значительной доле экземпляров.

5
задан Kev 13 November 2009 в 14:30
поделиться

3 ответа

Еще один совет - взглянуть на настройки IIS. Когда мне пришлось изменить таймауты, мне также пришлось внести некоторые изменения на стороне сервера. Проверьте настройку времени ожидания простоя для пула приложений. Если сайт простаивает (я думаю, по умолчанию 5 минут), тогда пул приложений отключается для экономии ресурсов сервера. Это также убьет сеанс.

Попробуйте увеличить время ожидания для пула приложений, чтобы узнать, помогает ли это вообще.

IIS »Каталог» Конфигурация »Параметры А ТАКЖЕ AppPool »Свойства

Очевидно, что если вы находитесь в среде общего хостинга, вы, скорее всего, не сможете это изменить.

13
ответ дан 18 December 2019 в 07:55
поделиться

Вы уверены, что время ожидания сеанса истекло? Это также может быть вызвано таймаутом аутентификации (т. Е. Срок действия cookie аутентификации истекает через 20 минут). Убедитесь, что для тайм-аута сеанса и аутентификации установлено одинаковое значение.

1
ответ дан 18 December 2019 в 07:55
поделиться

При использовании режима состояния сеанса по умолчанию «INPROC» (в процессе), как вы находитесь, данные состояния сеанса очень хрупкие и теряются всякий раз, когда apppool Recycles.

Рассмотрим использование других встроенных режимов состояния сеанса, которые запускаются вне процесса и, следовательно, невосприимчивы к переработке AppPool. Это режим «Господня» (работает в памяти в отдельном процессе) и режиме «SQLSERVER» (данные состояния, хранящиеся в SQL Server DB).

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

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

Как побочная записка, всегда учитывайте, должны ли ваши данные должны вообще перейти на сеанс. Как правило, лучше использовать ViewState, когда данные требуются между отступными сообщениями на той же странице, при условии, что объем данных не слишком чрезмерной. Вполне возможно для разработки приложений ASP.NET, которые вообще не используют сеанс, либо использовать его очень экономно, и, как правило, я нахожу все более интуитивно, когда вы не используете сеанс, например, Кнопка Browser назад. Ваша БД здесь, чтобы сохранить ваши данные, поэтому не стесняйтесь использовать его. Если вы передаете таблицы или наборы наборов между страницами, используя сеанс, рассмотрите, действительно ли вам нужно. Не могли бы вы пройти параметры через строку запросов, а затем используйте параметры, чтобы получить данные из вашей БД, когда страница запрашивается?

Сламся: Моды состояния сеанса MSDN

6
ответ дан 18 December 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: