我实际上是在尝试让protobuf-net 转码器运行,但在我能做到之前,我需要让 enyim/memcached 设置工作,并且可用的文档很少,我遇到了麻烦。这是我的简单 .net 测试:
using Enyim.Caching;
using Enyim.Caching.Memcached;
....
MemcachedClient Cache = new MemcachedClient();
string key = "somekey";
string objectToCache = "someval";
Cache.Store(StoreMode.Set, key, objectToCache, DateTime.Now.AddMinutes(1000000));
string test = Cache.Get(key) as string; //...it's null though
我的 memcached 服务器包 1.4.14 (x64) 在这里,似乎作为 Windows 服务运行良好,我正在使用最新的 nuget 包用于 enyim 和 protobuf,但是(即使关闭了转码,所以纯 enyim/memcached)没有运气。然后,再次使用 nuget 包EnyimMemcached-log4net
尝试按照此处的说明通过我的 web.config 打开 log4net ,我收到此错误:
无法加载文件或程序集 'log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)“:”log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=1b44e1d426115821
...这似乎是 nuget 返回错误版本的 log4net(项目参考说 1.2.11),即使它自己处理依赖项。所以我什至不明白为什么 enyim 无法存储/获取。
让这个工作的正确步骤是什么?
编辑:通过注释掉对持续时间的任何引用,它可以工作(包括转码)。
Cache.Store(StoreMode.Set, key, objectToCache); //, DateTime.Now.AddMinutes(1000000));
所以,稍微修改一下原来的问题:使用 expiresAt 有什么问题吗?有没有一种简单的方法可以让 log4net 在当前的 enyim 化身中工作?