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