IIS 7 и конфигурация службы состояний ASP.NET
У нас есть 2 веб-сервера с балансировкой нагрузки, и мы хотели по понятным причинам избавиться от зависающих сессий. Наш попытанный подход состоит в том, чтобы использовать службу состояния ASP.NET на одном из блоков, чтобы сохранить состояние сеанса для обоих. Я понимаю, что лучше всего иметь сервер, предназначенный для хранения сессий, но у нас нет ресурсов для этого.
Я следовал этим инструкциям безрезультатно. Сессия до сих пор не распределяется между двумя серверами.
Я не получаю никаких ошибок. У меня один и тот же ключ компьютера для обоих серверов, и я установил для идентификатора приложения уникальное значение, которое совпадает между двумя серверами. Любые предложения о том, как я могу решить эту проблему?
Обновить:
Я включил службу состояния сеанса на своем локальном компьютере и указал обоим серверам IP-адрес на своем локальном компьютере, и он работал как ожидалось. Сессия была разделена между обоими серверами. Это заставляет меня поверить, что проблема может заключаться в том, что я не использую автономный сервер в качестве службы состояний. Возможно, проблема в том, что я использую IP-адрес 127.0.0.1 на одном сервере, а затем использую другой IP-адрес на другом сервере. К сожалению, когда я пытаюсь использовать сетевой IP-адрес, а не localhost, соединение с хост-сервером не работает. Любое понимание того, верны ли мои подозрения, будет оценено.
1 ответ
Если вы хотите получить лучшее из обоих миров, вам стоит взглянуть на службы Windows AppFabric. Они предоставляют механизм кэширования с прямым поставщиком состояния сеанса для ASP.NET. Это позволяет вам раскручивать распределенные кэши в памяти между вашими веб-серверами и использовать их для потенциального переключения при сбое и хранения состояния сеанса. Он намного быстрее, чем сервер состояний или серверная часть SQL, и обладает всеми преимуществами работы в оперативной памяти и на самих веб-серверах.