【发布时间】:2015-03-17 10:24:59
【问题描述】:
我在 Azure 中的云服务实例上为 Web.Config 中的 ASP.NET 会话状态使用以下配置:
<sessionState mode="Custom" customProvider="DistributedCacheSessionStateStoreProvider">
<providers>
<add name="DistributedCacheSessionStateStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
</providers>
</sessionState>
以及datacacheclient的配置:
<dataCacheClients>
<dataCacheClient name="default" isCompressionEnabled="false">
<autoDiscover isEnabled="true" identifier="InternetWebRole" />
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
</dataCacheClients>
当我为云服务创建新部署时,该过程已成功执行。但是当我登录网站时,会话仅持续 1 或 2 个请求。单击另一个页面会将我重定向回登录页面。我的个人资料的身份验证成功,但会话几乎立即过期。我正在使用普通的 ASP.NET 成员资格提供程序使用表单身份验证:
<authentication mode="Forms">
<forms loginUrl="/Login" timeout="120" />
</authentication>
奇怪的是,3 或 4 小时后,问题就自行解决了。我可以再次登录,它使我的会话连续两个小时。我已经让这个实例在周末运行,但一切都运行良好。但是,一旦我删除部署并创建一个新部署,问题就会重新开始。 有没有人认识到同一个会话状态提供程序存在这个问题?
【问题讨论】: