如何使用Azure Redis缓存会话状态提供程序在不同的Web应用程序之间共享相同的会话状态?
我的两个应用程序的Web.configs都是这样的:
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore"
type="Microsoft.Web.Redis.RedisSessionStateProvider"
port="6380"
host="[myhostname].redis.cache.windows.net"
accessKey="[mykey]"
throwOnError="true"
applicationName="[mySharedAppName]"
ssl="true" />
</providers>
答案 0 :(得分:1)
您通常需要做两件事:
将applicationName
属性设置为两个应用的web.config中相同的字符串值。
如果应用程序位于不同的IIS站点或不同的服务器中,您可能需要更改ASP.NET在后台为您发送到浏览器的ASP.NET_SessionId
Cookie的cookie scope 。如果该会话cookie的范围不包含这两个应用程序,您将遇到麻烦:Web浏览器将使用不同的会话cookie,您的会话将无法共享。但是如果你在同一个网站下只有两个应用程序目录,那么你就不应该考虑这个。