Совместное использование сеансов в веб-ферме с классическим ASP - PullRequest
3 голосов
/ 17 ноября 2010

Мы находимся в среде с балансировкой нагрузки, балансировщик нагрузки - www.domain.com, и у нас есть 4 сервера с балансировкой нагрузки с использованием сеансов SQLServer для .NET ... www1, www2 и т. Д.

Проблема в том, что у нас также есть некоторые устаревшие компоненты ASP, которые мы должны продолжать работать после отключения Sticky IP на балансировщике нагрузки.Таким образом, наша идея заключалась в нескольких местах, где требовался ASP, и мы привязывали пользователя к определенному серверу, который был выбран при входе в систему.

Например.

1) Пользователь входит в .NETsite
2) .NET site узнает, какой сервер обработал запрос на вход, и запишите аутентификацию ASP на этот сервер.
3) Имя сервера хранится в переменной
4) Каждый раз, когда пользователь обращается к ASP, мы используемпеременная имени сервера, чтобы гарантировать, что он / она попадает на сервер, который имеет свою аутентификацию и сеанс.

Проблема заключается в том, что поскольку фактический запрос на вход в систему относится к балансировщику нагрузки, сеансотсутствует, когда мы направляем пользователя на www3.domain.com/blah.asp, потому что это домен, отличный от www.domain.com.

Поэтому я думаю, что мы ищем какой-то способ обмена сессиями междудомены, но с небольшим поворотом, я думаю.

Любая помощь приветствуется, и я надеюсь, что ясно изложил проблему.

1 Ответ

0 голосов
/ 17 ноября 2010

Вы можете использовать в качестве домена вашего сеансового куки-файла 'domain.com' , а не 'www.domain.com' , поэтому куки можно прочитать с www1.domain.com, www2.domain.com и т. д.

В сети .config:

<authentication mode="Forms">
  <forms path="/" domain="domain.com" ..... />
</authentication>
...