Azure分布式缓存会话状态直接过期

时间:2015-01-19 12:02:39

标签: asp.net session azure

我在Web中的Azure for 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>

当我为Cloud Services创建新部署时,该过程已成功执行。但是当我在网站上登录时,会话仅持续1或2个请求。单击另一个页面会将我重定向回登录页面。我的个人资料的身份验证是成功的,但会话几乎立即过期。我正在使用普通的ASP.NET成员资格提供程序进行表单身份验证:

<authentication mode="Forms">
  <forms loginUrl="/Login" timeout="120" />
</authentication>

奇怪的是,3或4小时后,问题就解决了。我可以再次登录,它会让我的会话连续两个小时。我已经让这个实例在周末继续运行,但仍然很好。但是一旦我删除部署并创建一个新部署,问题就会重新开始。 是否有人在同一会话状态提供商中识别此问题?

1 个答案:

答案 0 :(得分:0)

我通过向web.config添加机器密钥解决了这个问题,这对于所有云服务实例都是一样的。