.NET-приложения за балансировщиком нагрузки генерируют разные идентификаторы сеансов - PullRequest
2 голосов
/ 19 марта 2012

У нас есть коллекция сайтов .NET, которые размещены на двух эффективно идентичных веб-серверах, с простым распределителем запросов распределения нагрузки между ними. Все работало нормально, пока у нас не возник аппаратный сбой на одном сервере, и мы заменили его. Теперь у нас возникают проблемы с сеансами, поскольку люди выходят из приложений всякий раз, когда балансировщик нагрузки переключает сервер, к которому они подключаются.

Приложения на обоих серверах настроены на использование SQLServer для состояния сеанса и имеют идентичные значения machineKey и sessionState в web.config. например:

<configuration>
  <system.web>
    <machineKey validationKey="..." decryptionKey="..." validation="SHA1" decryption="AES" />
    <sessionState mode="SQLServer" stateNetworkTimeout="30" stateConnectionString="..." allowCustomSqlDatabase="true" sqlConnectionString="..." cookieless="false" timeout="1441" />
  </system.web>
</configuration>

Насколько я могу судить, сопряженные приложения также одинаково настроены в IIS: тот же URL, то же имя пула приложений, даже тот же путь на диске.

Однако запрос к одному и тому же сайту на каждом сервере (по IP) создает два уникальных значения SessionID (с тем же именем cookie в браузере).

Есть ли что-то еще, что я должен установить / проверить для генерации соответствующих идентификаторов сеансов на обоих серверах?

1 Ответ

2 голосов
/ 19 марта 2012

В конце концов нашел мой ответ о сбое сервера (почему это все отдельные сайты и учетные записи пользователей?): https://serverfault.com/questions/288981/load-balanced-iis-7-5-web-server-asp-net-session-state-problem

Короче говоря: в разделе «Дополнительные настройки каждого сайта в IIS» есть числовой идентификатор, которыйнастраивается, но, по-видимому, автоматически увеличивается с 1 в порядке создания сайта на этом сервере.Эти идентификаторы используются в таблице ASPStateTempApplications и различаются на наших серверах, что приводит к различным идентификаторам сеансов.

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