Сессии asp.net теряются при перезагрузке страницы (ispostback = false) - PullRequest
4 голосов
/ 27 февраля 2010

У меня действительно странная проблема с переменными сеанса.

У меня есть страница asp.net, которая устанавливает несколько переменных сеанса. На моей машине разработки (localhost) я выполняю обратную передачу, и значения сеанса по-прежнему заполнены.

Когда я перезагружаю страницу, нажимая на строку URL и нажимая ввод сеанса, переменные все еще там.

Однако, когда я развертываю эту страницу на веб-сервере, страница все равно сохраняет значения сеанса при выполнении обратной передачи, но как только я щелкаю по URL и нажимаю ввод, значения сеанса теряются (где ispostback = false)

Но когда я нажимаю кнопку обновления, присутствуют переменные сеанса (но я получаю всплывающее окно, предупреждающее меня о необходимости повторной отправки данных страницы!)

Я использую IE 7, а веб-сервер - iis6. Что я делаю не так ?!

пожалуйста, помогите х

Ответы [ 2 ]

2 голосов
/ 27 февраля 2010

Какой поставщик состояния сеанса вы используете? По умолчанию InProc , в результате чего сеансы хранятся в рабочем процессе asp.net. Это означает, что состояние сеанса может быть потеряно, если пул приложений перезагружен или на веб-сервере недостаточно памяти. Вы можете попробовать использовать режим StateServer , при котором сеансы хранятся в отдельной службе, работающей на сервере. Вы можете изменить режим в web.config например.

<system.web>
    <sessionState mode="StateServer" />
</system.web>

См. http://support.microsoft.com/kb/307598

1 голос
/ 27 февраля 2010

Похоже, что веб-сервер не настроен на использование состояния сеанса.

Убедитесь, что ваш web.config имеет правильный раздел <sessionState>, с mode, равным InProc:

<sessionState mode="InProc" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...