【问题标题】:Azure Distributed Cache sessionstate expires directlyAzure 分布式缓存会话状态直接过期
【发布时间】: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 小时后,问题就自行解决了。我可以再次登录,它使我的会话连续两个小时。我已经让这个实例在周末运行,但一切都运行良好。但是,一旦我删除部署并创建一个新部署,问题就会重新开始。 有没有人认识到同一个会话状态提供程序存在这个问题?

【问题讨论】:

    标签: asp.net session azure


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      相关资源
      最近更新 更多