私は実際に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サービスとして正常に動作しているようです.enyimとprotobufに最新のnugetパッケージを使用していますが、(トランスコーディングがオフになっていても、純粋なenyim / memcached)いいえ幸運。次に、再度 nuget パッケージを使用して、こちらEnyimMemcached-log4net
の指示に従って web.config 経由で log4net をオンにしようとすると、次のエラーが発生します。
ファイルまたはアセンブリ 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)":"log4net、バージョン = 1.2.10.0、カルチャ = ニュートラル、PublicKeyToken = 1b44e1d426115821
...これは、依存関係自体を処理しているにもかかわらず、間違ったバージョンのlog4netを返すナゲットのようです(プロジェクトリファレンスは1.2.11と言っています)。したがって、なぜenyimが保存/取得に失敗するのかさえわかりません。
これを機能させるための正しい手順は何ですか?
編集:期間への参照をコメントアウトすることにより、機能します(トランスコーディングを含む)。
Cache.Store(StoreMode.Set, key, objectToCache); //, DateTime.Now.AddMinutes(1000000));
したがって、元の質問を少し変更するには、expiresAt の使用に何か問題がありますか? そして、現在のenyimの化身でlog4netを動作させる簡単な方法はありますか?