1

如何LoginUser在 2 个托管服务器之间共享类似会话的值?

我在 10.10.10.120 (IIS 8) 和 10.10.10.121 (IIS 8) 中托管 2 个应用程序。

我尝试使用 Sql server 或 NCache server 但没有奏效。

我在 2 个应用程序和相同的配置中使用了相同的机器密钥

注意:-我准备使用负载平衡服务器

4

1 回答 1

0

我正在使用 NCache,它可以很好地将会话存储在集中式存储中。部署在两个不同 Web 服务器上的负载平衡应用程序应该能够使用相同的会话对象。我最初使用随 NCache 一起安装的示例会话应用程序,然后按照以下步骤在应用程序端对我有用。

部署在两个或多个 Web 服务器上的同一应用程序之间的会话共享。

  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. 在负载平衡的 Webfarm 中的 Web 服务器之间保持相同的机器密钥。

    <machineKey validationKey ="A01D6E0D1A5D2A22E0854CA612FE5C5EC4AECF24"
    decryptionKey ="ACD8EBF87C4C8937" validation ="SHA1"/>
    
  4. 在所有负载平衡的网络服务器上部署相同的应用程序。

部署在两个或多个 Web 服务器上的两个不同应用程序之间的会话共享。

如果这是您在此处尝试实现的目标,您还可以在两个不同的应用程序之间共享会话数据。

  1. 保持上述所有步骤相同,但确保两个应用程序在 SessionState 标记下具有相同的 sessionAppId="NCacheTestApp" 值。
于 2018-02-28T12:01:23.170 回答