小编典典

Azure Redis缓存的会话状态不适用于多个实例

redis

我正在使用Azure
Redis缓存存储用户会话以在多个实例上共享它。但这不起作用…我已登录,并且负载平衡器将我的请求定向到另一个Web服务器后,我就在另一个服务器上注销了。这是我当前的web.config:

<sessionState mode="Custom" customProvider="RedisSessionStateStore">
  <providers>
    <add name="RedisSessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="HOSTNAME.redis.cache.windows.net" accessKey="ACCESSKEY" ssl="true" />
  </providers>
</sessionState>

在门户中,我可以看到该应用程序将数据写入高速缓存,以便连接正常工作。如果有帮助,我的身份验证部分将如下所示:

<authentication mode="Forms">
  <forms loginUrl="Welcome.aspx" defaultUrl="default.aspx" cookieless="UseCookies" timeout="60000" />
</authentication>

为了使它在多个Web服务器上运行,我还有什么需要做的吗?在教程中,我只发现了上面有关sessionState的配置。

谢谢你的帮助!


阅读 289

收藏
2020-06-20

共1个答案

小编典典

我发现了问题。我在服务器上具有不同的machineKeys,因此无法在其他Web服务器上解码身份验证cookie。

2020-06-20