Как заставить 20-минутный тайм-аут для сессий? - PullRequest
0 голосов
/ 31 марта 2009

Я очень смущен, когда речь заходит о том, что на самом деле решает время ожидания сеанса.

Веб-приложению необходимо разрешить 20-минутное "бездействие", прежде чем регистрировать (или выбрасывать) пользователей. Я пробовал разные настройки как для sessionState, так и для Recycle рабочих процессов в IIS. Тайм-аут остается слишком коротким, и, как показали мои примитивные тесты, довольно случайный.

Я где-то читал, что тайм-аут по умолчанию составляет 20 минут, но в моем приложении он кажется ближе к пяти. Есть ли простые способы изменить это? Приложение работает под управлением .NET 3.5 на IIS 6.

EDIT: Я только что понял, что Entity Framework может иметь какое-то отношение к проблеме, так как пользовательский контент хранится как контекст в Entity Framework. Существуют ли какие-либо временные ограничения на то, как долго лицо удерживается?

Ответы [ 3 ]

6 голосов
/ 31 марта 2009

Пользователь выйдет из системы на основе ваших настроек аутентификации в web.config.

Тайм-аут сеанса будет установлен в вашем теге сеанса в файле web.config.

Если они разные, то вы увидите "интересные" результаты.

5 голосов
/ 31 марта 2009

http://msdn.microsoft.com/en-us/library/ms972429.aspx

Если вы посмотрите в файле web.config, вы можете написать что-то вроде этого

<configuration>
  <sessionstate timeout="20" />
</configuration>

и там вы можете установить тайм-аут ..

1 голос
/ 31 марта 2009

Используйте время ожидания сеанса. Вы не хотите использовать Recycle Worker, поскольку он будет перезапускать все сеансы, связанные с этим работником, каждые N минут. Если вы используете переменную сеанса, рекомендуется установить Recycle Worker на очень высокое значение.

...