我实际上试图让protobuf-net transcoder继续,但在我能够做到这一点之前,我需要让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)是here,似乎可以作为Windows服务正常运行,我正在使用enyim和protobuf的最新nuget软件包,但是(即使关闭了转码,所以纯粹的enyim / memcached)没有运气。然后,再次使用nuget包EnyimMemcached-log4net
尝试按照指示here通过我的web.config打开log4net,我收到此错误:
无法加载文件或程序集'log4net,Version = 1.2.10.0, Culture = neutral,PublicKeyToken = 1b44e1d426115821'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT的例外情况: 0x80131040)“:”log4net,Version = 1.2.10.0,Culture = neutral, 公钥= 1b44e1d426115821
...似乎是nuget返回错误的log4net版本(项目参考说明1.2.11),即使它正在处理依赖项本身。所以我甚至不明白为什么enyim无法存储/获取。
使这项工作正确的步骤是什么?
编辑:通过注释掉对持续时间的任何引用,它都有效(包括转码)。
Cache.Store(StoreMode.Set, key, objectToCache); //, DateTime.Now.AddMinutes(1000000));
所以,稍微修改一下原来的问题:使用expiresAt有什么问题吗?是否有一种简单的方法可以让log4net在当前的enyim化身中运行?
答案 0 :(得分:1)
答案似乎是memcached的错误构建,请参阅this question。我无法确认,因为1.4.5的couchbase d / l不能作为正确的Windows服务运行(因为我的缓存层必须)。
就log4net / enyim版本而言,在通过VS扩展管理器提示时更新nuget包管理器似乎已经解决了它,尽管我从未查明原因。
答案 1 :(得分:0)
我还有“无法加载文件或程序集'log4net,Version = 1.2.10.0”错误。
在我的情况下,事实证明了; 'enyimMemcached-log4net'NuGet包需要1.2.10.0版本的'log4net',即使它没有在依赖项中特别提到。安装所需的log4net包解决了它。
@ParseClassName("Question")
public class Question extends ParseObject {
public static final String TAG = Question.class.getName();
private String question;
private String rightAnswer;
private String wrongAnswer1;
private String wrongAnswer2;
private String wrongAnswer3;
public Question(){
//need for Parse
}
public Question(String question, String rightAnswer, String wrongAnswer1, String wrongAnswer2, String wrongAnswer3) {
super();
this.question = question;
this.rightAnswer = rightAnswer;
this.wrongAnswer1 = wrongAnswer1;
this.wrongAnswer2 = wrongAnswer2;
this.wrongAnswer3 = wrongAnswer3;
}
public Question(String theClassName, String question, String rightAnswer, String wrongAnswer1, String wrongAnswer2, String wrongAnswer3) {
super(theClassName);
this.question = question;
this.rightAnswer = rightAnswer;
this.wrongAnswer1 = wrongAnswer1;
this.wrongAnswer2 = wrongAnswer2;
this.wrongAnswer3 = wrongAnswer3;
}