实际上,我正在尝试启动原始网转码器,但在此之前,我需要使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,按照指示的log4net通过log4net打开这里,得到以下错误:
无法加载文件或程序集“log4net、Version=1.2.10.0、Culture=neutral、PublicKeyToken=1b44e1d426115821”或其依赖项之一。所定位的程序集的清单定义与程序集引用不匹配。(HRESULT的例外: 0x80131040)":"log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821
...which似乎正在返回错误版本的log4net (项目引用说明为1.2.11),尽管它正在处理依赖项本身。所以我甚至不明白为什么恩伊姆没能储存/得到。
什么是正确的步骤,使这一工作?
编辑:通过注释掉对持续时间的任何引用,它可以工作(包括代码转换)。
Cache.Store(StoreMode.Set, key, objectToCache); //, DateTime.Now.AddMinutes(1000000));所以,稍微修改一下原来的问题:使用expiresAt有什么问题吗?是否有一种简单的方法可以让log4net在当前的enyim化身中工作?
发布于 2013-01-03 19:39:43
答案似乎是memcached的错误构建,请参见这个问题。我无法确认这一点,因为couchbase的d/l 1.4.5不能作为一个正确的Windows服务运行(我的缓存层必须这样做)。
至于log4net/enyim版本控制,在VS扩展管理器提示下更新nuget包管理器似乎已经解决了这个问题,尽管我从未孤立原因。
发布于 2015-07-08 11:07:35
我也有“无法加载文件或程序集'log4net,Version=1.2.10.0”错误。
在我的例子中,结果是:'EnyimMemcached-log4net‘NuGet包需要1.2.10.0版本的“log4net”,尽管在依赖项中没有具体提到它。安装所需的log4net包为我解决了这个问题。
Install-Package log4net -version 1.2.10.0https://stackoverflow.com/questions/13676026
复制相似问题