AppFabric会话状态提供程序 - 已禁用LRU驱逐用于存储会话的缓存

时间:2015-04-09 04:33:06

标签: appfabric

我正在使用AppFabric在两个或更多不同的Web应用程序之间共享会话。

但是我遇到了一个问题:" 期待会话项目' FULL_NAME'要出现在缓存中,但找不到它,表明当前会话已损坏。请确认已禁用用于存储会话的缓存的LRU驱逐。"

我的配置:

<dataCacheClient>
<hosts>
  <host name="CACHE1" cachePort="22233" />
  <host name="CACHE2" cachePort="22233" />
  <host name="CACHE3" cachePort="22233" />
</hosts>

<machineKey validationKey="C7415df6847D0C0B5146F5605B5973EBD59kjh67EE6414ECD534A95F528F153B6B5F42CFFA9EBF65B2169F7DA5D801C0F9053454A159505253DC687A" decryptionKey="3AE9EE73F1A2781B73DEC6C3fgdgdfD28E0C730284DD314118DA8B" validation="SHA1" decryption="AES" />

<sessionState timeout="40" mode="Custom" customProvider="AFCacheSessionStateProvider">
  <providers>
    <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="XXXXX" shareID="YYYYY" retryCount="10" useBlobMode="false" />
  </providers>
</sessionState>

有谁知道什么是问题?

1 个答案:

答案 0 :(得分:0)

这不是你需要检查的asp.net配置,它是缓存本身。

在缓存主机上,查看命令Get-CacheConfig XXXXX的输出 - 正如docs所示,您会看到如下输出:检查EvictionType

CacheName            : Cache1
TimeToLive           : 10 mins
CacheType            : Partitioned
Secondaries          : 0
IsExpirable          : True
EvictionType         : LRU
NotificationsEnabled : False

有关逐出设置的详细信息,请参阅Expiration and Eviction文档。如果您的驱逐类型不是LRU,请检查缓存内存使用情况,如该页面所示:

  

当缓存服务器上的缓存服务的内存消耗时   超过低水印阈值,AppFabric开始驱逐对象   已经过期了。 当内存消耗超过高时   水印阈值,对象从记忆中逐出,无论如何   他们是否已经过期,直到内存消耗回来   降低到低水位。

有一个expiration troubleshooting页面,其中包含更多信息。

相关问题