1

我们在使用 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>   
4

1 回答 1

2

我们在一个类似的帖子中找到了答案,与使用 enyim 进行缓存和设置过期有关的存储 - 考虑到显然会为进入 memcached 的会话项目设置过期,这是有道理的。

问题在于我们在 Windows 上使用的 memcached 版本。似乎旧版本的服务器日期时间有问题。

当我们通过 telnet 连接到 memcached 服务器并运行stats命令时,我们发现time服务器上的属性(纪元日期)设置为 1974 年的某个日期。

经过一番调查,我发现这篇文章证实了我们正在使用的旧 Windows 版本的 Memcached。

更新到以下版本的 memcached 已解决此问题: http ://blog.elijaa.org/index.php?post/2010/08/25/Memcached-1.4.5-for-Windows

于 2014-01-02T13:17:59.430 回答