Общий сеанс между двумя хостинговыми серверами
Как я могу поделиться сессией как LoginUser
значение между 2 хостинг-серверами?
Я размещаю 2 приложения одно в 10.10.10.120 (IIS 8), а другое - 10.10.10.121 (IIS 8).
Я пытался использовать сервер Sql или сервер NCache, но не работал.
Я использовал тот же ключ компьютера в 2 приложениях и одинаковую конфигурацию
Примечание:- Я готовлюсь к использованию сервера балансировки нагрузки
1 ответ
Я использую NCache, и он отлично работает для хранения сеансов в централизованном хранилище. Приложения с балансировкой нагрузки, развернутые на двух разных веб-серверах, должны иметь возможность использовать один и тот же объект сеанса. Сначала я использовал пример приложения сеанса, которое было установлено с NCache, а затем следовал приведенным ниже шагам, которые работали для меня в конце приложения.
Совместное использование сеанса между одним и тем же приложением, развернутым на двух или более веб-серверах.
Добавьте сборку поставщика состояния сеанса NCache.
<assemblies> <add assembly="Alachisoft.NCache.SessionStoreProvider, Version=4.8.0.0, Culture=neutral, PublicKeyToken=CFF5926ED6A53769" /> </assemblies>
Добавить состояние сеанса NCache
<sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="1"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" exceptionsEnabled="true" nableSessionLocking="true" emptySessionWhenLocked="false" sessionLockingRetry="-1" sessionAppId="NCacheTestApp" useInProc="false" enableLogs="false" cacheName="SessionsCache" writeExceptionsToEventLog="false" AsyncSession="false" /> </providers>
Сохраняйте один и тот же ключ компьютера на веб-серверах в веб-ферме с балансировкой нагрузки.
<machineKey validationKey ="A01D6E0D1A5D2A22E0854CA612FE5C5EC4AECF24" decryptionKey ="ACD8EBF87C4C8937" validation ="SHA1"/>
Разверните одно и то же приложение на всех веб-серверах с балансировкой нагрузки.
Совместное использование сеанса между двумя различными приложениями, развернутыми на двух или более веб-серверах.
Вы также можете делиться данными сеанса между двумя различными приложениями, если это то, чего вы пытаетесь достичь здесь.
- Сохраняйте все вышеперечисленные шаги одинаковыми, но убедитесь, что два приложения имеют одинаковое значение для sessionAppId="NCacheTestApp" в теге SessionState.