ASP.NET Почему тайм-аут сеансов установлен - PullRequest
6 голосов
/ 06 мая 2011

Эй, у меня есть следующая строка в моем web.config

<sessionState mode="InProc" timeout="45"/>

Что, я думал, сохранит сеансы без изменений в течение 45 минут

Но я видел случай, когда пользователь неактивен, скажем, через 15 минут ожидания сеансов.

Как я могу это остановить?

Редактировать: только что заметил, у меня есть следующая строка на главной странице

meta http-equ = "Обновить" content = "1800; URL = http://www.virtualacademy.ie/login.aspx">

Может быть, это вызывает проблему, что делает приведенная выше строка, то есть число 1800

Ответы [ 4 ]

19 голосов
/ 02 февраля 2012

Обязательно проверьте конфигурацию IIS, поскольку пул приложений, на котором размещен ваш сайт, также имеет свое собственное значение времени ожидания, которое переопределит ваш собственный .config.

Чтобы увеличить его,

  1. Открыть IIS
  2. Выбрать пулы приложений с левой стороны
  3. Выбрать пул приложений, используемый вашим сайтом
  4. Выбрать дополнительные настройки
  5. В разделе Модель процессакатегорически увеличьте значение 'Idle Time-out' до желаемой длины.

Надеюсь, это поможет.

(Если у вас нет выделенного сервера / доступа к IIS на вашем хостингепровайдеру, вам нужно связаться с ним, чтобы узнать, могут ли они увеличить его для вас)

5 голосов
/ 06 мая 2011

Если пользователь закрывает свой браузер или удаляет куки, или если домен приложения на сервере перезагружен, состояние сеанса будет потеряно.

Вы проверили журналы, чтобы убедиться, что приложение перерабатывается?

5 голосов
/ 06 мая 2011

Повторное использование AppDomain - очень распространенная проблема, если sessionState равен InProc. Настоятельно рекомендуется использовать вместо StateServer или SQLServer для производственных систем. См. Режимы состояния сеанса для документации о том, как использовать каждый из них, а также плюсы и минусы трех различных типов.

Лично мы используем SQL Server, если нам нужно для ферм веб-серверов - медленнее, но могут использоваться совместно. Мы используем State Server, если сайт будет размещаться только на одном веб-сервере - состояние сохраняется, перезапускается AppDomain, но не весь сервер перезапускается.

Кроме того, в прошлом мы использовали пост AJAX в фоновом режиме, когда пользователь просматривал долго работающие видео или выполнял длинные клиентские задачи, поэтому время ожидания сеанса сбрасывается каждые несколько минут. Ничего особенного в этом коде нет, просто каждые несколько минут нажимайте немного JavaScript на странице ASPX, которая ничего не возвращает.

0 голосов
/ 06 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...