Общий сеанс между двумя хостинговыми серверами

Как я могу поделиться сессией как LoginUser значение между 2 хостинг-серверами?

Я размещаю 2 приложения одно в 10.10.10.120 (IIS 8), а другое - 10.10.10.121 (IIS 8).

Я пытался использовать сервер Sql или сервер NCache, но не работал.

Я использовал тот же ключ компьютера в 2 приложениях и одинаковую конфигурацию

Примечание:- Я готовлюсь к использованию сервера балансировки нагрузки

1 ответ

Я использую NCache, и он отлично работает для хранения сеансов в централизованном хранилище. Приложения с балансировкой нагрузки, развернутые на двух разных веб-серверах, должны иметь возможность использовать один и тот же объект сеанса. Сначала я использовал пример приложения сеанса, которое было установлено с NCache, а затем следовал приведенным ниже шагам, которые работали для меня в конце приложения.

Совместное использование сеанса между одним и тем же приложением, развернутым на двух или более веб-серверах.

  1. Добавьте сборку поставщика состояния сеанса NCache.

    <assemblies>
    <add assembly="Alachisoft.NCache.SessionStoreProvider, Version=4.8.0.0, 
    Culture=neutral, PublicKeyToken=CFF5926ED6A53769" />
    </assemblies>
    
  2. Добавить состояние сеанса 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>
    

  3. Сохраняйте один и тот же ключ компьютера на веб-серверах в веб-ферме с балансировкой нагрузки.

    <machineKey validationKey ="A01D6E0D1A5D2A22E0854CA612FE5C5EC4AECF24"
    decryptionKey ="ACD8EBF87C4C8937" validation ="SHA1"/>
    
  4. Разверните одно и то же приложение на всех веб-серверах с балансировкой нагрузки.

Совместное использование сеанса между двумя различными приложениями, развернутыми на двух или более веб-серверах.

Вы также можете делиться данными сеанса между двумя различными приложениями, если это то, чего вы пытаетесь достичь здесь.

  1. Сохраняйте все вышеперечисленные шаги одинаковыми, но убедитесь, что два приложения имеют одинаковое значение для sessionAppId="NCacheTestApp" в теге SessionState.
Другие вопросы по тегам