使用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> 发布于 2014-01-02 13:17:59
我们在类似的帖子中找到了答案,这与使用enyim进行缓存和设置过期有关,这是有意义的,因为有效期限显然是针对入memcached的会话项设置的。
问题是我们在Windows上使用的memcached版本。似乎旧版本在服务器日期时间方面有问题。
当我们通过telnet连接到memcached服务器并运行stats命令时,我们发现服务器上的time属性(一个划时代的日期)在1974年被设置为某个日期。
经过一些调查,我发现了this post,这证实了我们使用的旧版本的Memcached。
更新到memcached的以下版本解决了这个问题:http://blog.elijaa.org/index.php?post/2010/08/25/Memcached-1.4.5-for-Windows
https://stackoverflow.com/questions/20883887
复制相似问题