Проигрышная сессия в ASP.NET C # - PullRequest
0 голосов
/ 29 сентября 2010

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

Я везде читал на этом сайте, что я могу перевести свою сессию в режим "sql server", чтобы все было написано на сервере, это может быть решением?

Мой сервер находится на 1 и 1 виртуальном хостинге, это может быть их вина?

Спасибо!

1 Ответ

2 голосов
/ 29 сентября 2010

Уточните у провайдера хостинга, что ваше приложение не размещается на сервере с балансировкой нагрузки.Если сервер сбалансирован по нагрузке, ваши пользователи потеряют информацию о состоянии сеанса, когда подсистема балансировки нагрузки отправит запрос на другой сервер.Существует 3 параметра свойства режима состояния сеанса: InProc - локально хранит информацию о состоянии на сервере, с которого сделан запрос (действует только тогда, когда приложение размещается на одном сервере с балансировкой без нагрузки).среда) StateServer - Позволяет специально сконфигурированному серверу размещать информацию о состоянии всей веб-фермы (я полагаю, что StateServer начал предлагаться в .NET Framework v2.0). SqlServer - позволяет специально настроенному экземпляру SQL Server хранить информацию о сеансе для веб-фермы [Эта информация может незначительно отличаться в сценарии веб-сада.]

См. MSDN для получения дополнительной информации о состоянии сеанса.

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

Другая возможность - это свойство timeout параметра sessionstate в web.config, для которого установлено низкое значение (в минутах), и сеанс истекает.

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