1

我正在使用 Azure 流量管理器对不同区域的两台服务器进行负载平衡。我以为我的会话状态需要一个存储或 redis 缓存。但是,在测试时,即使我通过测试我所在的服务器返回服务器之间,它似乎也能让我保持登录状态。我登出,我在另一个上登出。我存储的唯一会话状态是用户配置文件,但如果找不到它,它只会转到服务器并获取它。下面是我的表单设置。我真的需要像redis缓存这样的东西吗?

<sessionState timeout="2880" mode="InProc" />
    <authentication mode="Forms">
      <forms loginUrl="/login" path="/" protection="All" domain=".example.com" timeout="2880" slidingExpiration="true" name="_EXPOSURE_" />
    </authentication>
4

1 回答 1

2

只有您可以决定如何设计您的应用程序,但是......流量管理器与会话状态完全无关。它只是根据选择的路由方法(距离/循环/主要+故障转移)将您的用户流量路由到多个 Web 端点。

上面的会话状态片段代表 InProc,这意味着会话数据在给定 VM 上的 Web 服务器内维护。它不在VM 之外共享。如果您希望跨多个 VM(或 Web 应用程序)共享会话状态,则必须将会话状态存储在 Web 服务器外部。

无论您使用 Redis,还是 SQL 数据库,或其他什么,都取决于您。

于 2016-04-07T22:00:50.530 回答