我们在使用Memcached作为MVC .NET应用程序的会话提供程序时遇到了问题。
问题是对象进入会话,但随后会立即过期,因此我们无法检索它们。
我们使用的配置如下:
<enyim.com>
<memcached protocol="Binary">
<servers>
<add address="127.0.0.1" port="11211" />
</servers>
</memcached>
</enyim.com>
<cacheProvider defaultProvider="MemcachedCacheProvider">
<providers>
<add name="MemcachedCacheProvider"
type="MemcachedProviders.Cache.MemcachedCacheProvider, MemcachedProviders" defaultExpireTime="20000"/>
</providers>
</cacheProvider>
答案 0 :(得分:2)
我们在类似的帖子中找到了答案,与使用enyim存储缓存和设置到期有关 - 这是有道理的,因为显然会为进入memcached的会话项设置到期日。
问题是我们在Windows上使用的memcached版本。似乎旧版本的服务器日期时间有问题。
当我们通过telnet连接到memcached服务器并运行stats
命令时,我们发现服务器上的time
属性(一个纪元日期)设置为1974年的某个日期。 / p>
经过一番调查后,我发现this post确认它是我们正在使用的旧Windows版Memcached。
更新到以下版本的memcached已解决此问题: http://blog.elijaa.org/index.php?post/2010/08/25/Memcached-1.4.5-for-Windows