За вопрос, который я отправил вчера , структура DNS нашего веб-сайта изменилась на циклический DNS, который буквально переключается между двумя рабочими серверами.Наш web.config
для обоих серверов prod имеет:
<sessionState mode="SQLServer" ... >
, указывающий на одну и ту же общую базу данных - A
machineKey
на каждом сервере, который согласован между этими двумя (это былоосновной смысл моего сообщения вчера). - [ update ] Тот же домен в теге
<forms domain=".mydomain.com" ... >
Когда мы используем функцию входа в систему наsite, логин фактически отправляет запрос веб-службы третьему веб-сайту, который аутентифицирует пользователя.Если в полученном ответе говорится, что это был успешный вход в систему, то мы используем FormsAuthentication
для входа пользователя в систему:
FormsAuthentication.SetAuthCookie(strUserID, true);
Наша проблема в том, что на некоторых страницах мы видим, что мы вошли в систему, на других мыне.Является ли это чем-то показательным, если мы не выполнили последний шаг, чтобы разделить сеанс между двумя серверами prod, или наша база данных сеанса SQL-сервера была повреждена?
Заранее спасибо
UPDATE : Наш код для определения того, вошел ли пользователь в систему, довольно прост:
HttpContext.Current.User.Identity.IsAuthenticated
ОБНОВЛЕНИЕ 2 :
Когда я нажимаю prod1.mysite.com (илиprod2.mysite.com) Я получаю файл cookie с именем "ASP.NET_SessionId"
, но когда я перехожу на общедоступный URL-адрес www.mysite.com, я не получаю этот файл cookie.Является ли это частью проблемы?
РАЗРЕШЕНИЕ :
Оказывается, все, что мы здесь сделали, было правильно, и что наш живой сайт, использующий Akamai, кэшировался вразличные состояния из-за конфигурации кэша Akamai.Совместное использование зарегистрированного состояния между серверами подтверждено для работы.