1

Я использую менеджер Azure Traffic для загрузки двух серверов в разных регионах. Я думал, что мне понадобится один магазин или redis cache для моего состояния сеанса. Тем не менее, несмотря на то, что тестирование, похоже, позволяет мне войти в систему, даже когда я возвращаюсь между серверами, тестируя, на каком сервере я работаю. Я выхожу из системы, и я вышел из системы на другом. Единственное состояние сеанса, которое я сохраняю, - это профиль пользователя, но если он не найден, он просто переходит на сервер и захватывает его. Ниже приведена настройка моих форм. Мне действительно нужно что-то вроде redis cache?Необходима балансировка нагрузки с помощью диспетчера трафика Azure и состояния сеанса?

<sessionState timeout="2880" mode="InProc" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="/login" path="/" protection="All" domain=".example.com" timeout="2880" slidingExpiration="true" name="_EXPOSURE_" /> 
    </authentication> 

ответ

2

Только вы можете решить, как разработать приложение, но ... Менеджер трафика не имеет ничего общего с состоянием сеанса. Он просто перенаправляет ваш пользовательский трафик на несколько конечных точек веб-сайтов на основе выбранного метода маршрутизации (дистанционный/циклический/первичный + переход на другой ресурс).

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

Независимо от того, используете ли вы Redis, SQL Database или что-то еще, зависит от вас.

+0

Я предполагаю, что сеанс форм работает, потому что мой машинный ключ тот же, и имя домена является подстановочным знаком для файла cookie. –