Сессия State Странное поведение - PullRequest
2 голосов
/ 27 июля 2011

У меня есть приложение веб-формы ASP.NET 3.5, которое работает на двух веб-серверах (IIS) и сбалансировано по нагрузке с помощью переключателя содержимого с липкой привязкой. У меня есть страница, которая помещает данные в переменную сеанса, javascript открывает новое окно браузера, и в событии page_load этой страницы я получаю эту переменную сеанса и отображаю данные.

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

Дополнительный поворот заключается в том, что Firefox не имеет этой проблемы. Данные отображаются 100% времени в первый раз. Проблема в том, что мы (официально) не поддерживаем Firefox.

У нас нет доступа ни к какому стороннему хранилищу данных, такому как MSSQL или MySQL, поэтому хранить данные сеанса там невозможно. Кроме того, возможность кэшировать данные на стороне клиента не практична, а в некоторых случаях не подходит.

Это не происходит локально или в нашей тестовой среде (которая не сбалансирована по нагрузке), поэтому я действительно сбит с толку. Любая помощь будет принята с благодарностью.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Какой провайдер хранилища сессий вы используете?InProc, StateServer?Это звучит , как будто вы используете InProc.Если это так, то, поскольку у вас нет доступа к БД, ответом может быть переключение на StateServer.

Вот статья о балансировке нагрузки ASP.NET и сервере состояний ASP.NET может помочь вам.

1 голос
/ 27 июля 2011

Вы упомянули, что используете липкую сессию / сродство.Можете ли вы подтвердить, что ваш балансировщик нагрузки просматривает файлы cookie HTTP (не только IP-адрес), чтобы определить привязанность, поскольку IP-адреса могут изменяться в течение одного сеанса (например, стыковка ноутбука между проводной и беспроводной сетью).

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