问题标签 [enyim.caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5410 浏览

memcached - 无法让 Enyim.Caching MemcachedClient 与 Couchbase 一起使用

我意识到 Couchbase 为他们的 memcached 服务器提供了一个客户端,但我试图让 enyim.caching 客户端工作。

这是我使用 Couchbase 客户端(有效)的琐碎 c# 代码,然后与 enyim MemcachedClient 几乎相同:

这是我的 app.config:

当我单步执行代码时,Couchbase 客户端似乎工作正常。Get 方法按预期返回“somevalue”。该代码还愉快地单步执行 MemcachedClient 代码,但是当我单步执行 Store 方法时,它会挂起 10 秒(我认为这是超时),然后 myVal 值返回为 null。没有错误被抛出。

我怀疑问题围绕zone配置中 memcached 的身份验证节点中的值。在 enyim.caching 源代码(从 Github 检索)中的 DemoApp 代码中,从未指定 zone,但如果未提供 zone,enyim 会抛出错误 - 即 DemoApp 无法按原样工作,因为 zone 没有t 提供。

我不确定这是否是问题所在,但我知道我不能将区域排除在外,但我不知道该值使用什么。我见过一个使用“AUTHZ”的例子,但这似乎没有任何区别。

有人看到我在这里做错了吗?任何帮助表示赞赏!:)

0 投票
2 回答
1981 浏览

c# - 无法解决 Enyim.Caching 的依赖关系

在使用 Couchbase 客户端时,我无法解决对 Enyim.Caching.dll 的依赖问题。我已经通过 NuGet 下载了 dll 并在项目中引用了它们。该解决方案与下载的程序集 Enyim.Caching, Version=2.12.0.0, Culture=neutral, PublicKeyToken= 05e9c6b5a9ec94c2一起编译得很好。但是在运行时 Couchbase 会抛出异常,因为它正在寻找 Enyim.Caching, Version=2.12.0.0, Culture=neutral, PublicKeyToken= cec98615db04012e

我无法理解为什么它需要另一个相同版本的 dll,但使用另一个 PublicKey。

我还尝试了Cant get the couchbase .net memcache client to run 中描述的解决方案,抱怨强名称验证无法通过使用 ns.exe 删除强名称要求。但它没有锻炼。

任何人都可以帮助我吗?

0 投票
0 回答
1626 浏览

asp.net - 空缓冲区错误

我刚刚注意到,在运行应用程序时,我会定期收到一条错误消息。

堆栈跟踪:

我们的应用程序使用 Enyim memcached 和 MemcachedProviders 并在负载平衡的环境中运行。

该应用程序做了很多管理 PDF 报告和编译响应然后生成最终报告 pdf 的工作。所以我们经常使用流。

这个问题似乎只影响我们的管理应用程序,因为我们还公开了一个 Web 服务,而且在查看服务定义和 WSDL 时我从来没有遇到过错误。

通过查看数据库中的会话表,我可以看到它们正在被创建,但是它们中的许多在 SessionItems 字段中具有空值,并且锁定标志设置为 1。数据时间戳似乎与空缓冲区错误发生相关。

这是缓冲区设置不正确或最大化的情况吗?

0 投票
1 回答
570 浏览

memcached - 如何在多个服务器之间使用 memchached 方法分配缓存?

我正在尝试跨多个服务器分配缓存。我已经在 2 个 Linux 服务器上安装了 Memcached。我正在使用 .Net 客户端库来操作这些服务器上的缓存。

它总是在配置的第一台服务器上存储价值。我试图改变服务器的顺序,它只存储在列表中的第一个。

我使用 Putty 检查服务器上是否存在对象。

问题是:

如何同时在两台服务器上存储对象?

如果我想验证该对象是否存储在配置文件中的所有服务器上

我如何从客户端库中做到这一点?

这是我的代码示例:

和配置

0 投票
1 回答
1386 浏览

asp.net-mvc - 用于 EnyimMemcached 问题的 protobuf-net 转码器

从 protobuf-net 到 enyim 缓存的转码器是否已弃用?使用 protobuff-net 进行分布式缓存

当我尝试启动 MemcachedClient() 时,像这个app.config一样设置我的 Enyim 配置会导致错误

转码器类型="ProtoBuf.Caching.Enyim.NetTranscoder"/

两者都通过 nuget 安装并使用可用的最新版本。

0 投票
1 回答
570 浏览

nhibernate - NHibernate.Caches.EnyimMemcached, protobuf-net.Enyim 想要 Enyim.Caching 的冲突版本

我正在尝试连接 NHibernate 以使用 Enyim.Memcached 提供程序进行二级缓存。此外,我希望 Enyim.Memcached 使用 protobuf-net 作为其序列化程序。

查看 nuget 和 web,我可以找到几乎所有我需要的部分:

核桃:

  • protobuf-net.Enyim
  • protobuf-net (protobuf-net.Enyim 的依赖关系)
  • EnyimMemcached (Enyim.Caching)v2.12 (protobuf-net.Enyim 的依赖)

网络:(http://sourceforge.net/projects/nhcontrib/files/NHibernate.Caches/ - 我找不到 NHibernate.Caches.EnyimMemcached 的 nuget 包)

  • NHibernate.Caches.EnyimMemcached
  • Enyim.Cachingv2.3

然而,当我把所有东西都连接起来时,我得到了一个The located assembly's manifest definition does not match the assembly reference.错误。问题似乎是:

  • NHibernate.Caches.EnyimMemcached想要Enyim.Cachingv2.3
  • protobuf-net.Enyim想要Enyim.Cachingv2.12

他们玩得不好。我尝试添加程序集重定向,但无济于事:

“最新”的 Enyim.Caching 程序集(通过 EnyimMemcached 包)只有 v2.12。哦!2.122.3 更新。(感谢您指出马克!)

有什么想法吗?是否有我不知道的 NHibernate.Caches.EnyimMemcached nuget 包?还是使用 2.3 而不是 2.12 的 protobuf-net.Enyim?我无法想象我是唯一一个尝试使用这个 NHibernate-Enyim-Protobuf-net 堆栈的人。我很惊讶程序集绑定重定向没有解决这个问题。

更新:我很乐意听从 Marc 的建议。我只是下载了 NHibernate.Caches.EnyimMemcached 的源代码并将其 Enyim.Caching 引用从未签名的 v2.3 程序集更改为已签名的 2.12 程序集。一切都是肉汁!

0 投票
2 回答
13365 浏览

c# - 从程序集中删除签名

我在 Visual Studio 中打开了一个项目(它恰好是 Enyim.Caching)。这个程序集想要延迟签名。事实上,它非常渴望被延迟签名,以至于我无法强制 Visual Studio 编译它而不延迟签名。

  1. 我在 Visual Studio 项目属性框中取消选中“仅延迟签名”和“签署程序集”,然后重新构建。组件仍标记为延迟标志(如 所示sn.exe -v)。

  2. 我已卸载项目并验证签名设置为 false。重新加载项目时,选中“Sign”和“Delay Sign”复选框。

  3. 我已验证 AssemblyInfo(或其他地方)中不存在会导致此问题的属性。

  4. 我在互联网上搜索了解决方案,但没有找到。

我怎样才能做到这一点?

0 投票
1 回答
291 浏览

nhibernate - NHibernate MemCached w/ Protobuf-net.Enyim -- does it actually work?

I've used the following assemblies to hook up NHibernate 2nd-level caching with Enyim Memcached using Protobuf-net binary serializer:

  • NHibernate
  • NHibernate.Caches.EnyimMemcached
  • Enyim.Caching
  • protobuf-net
  • protobuf-net.Enyim

It's recently come to my attention that despite hooking up protobuf-net with EnyimMemcached, I'm likely not actually using that serializer as all my entities were marked with just [Serializable] and neither [DataContract] or [ProtoContract] with corresponding ordered Data/ProtoMembers for the properties. I can get protobuf-net to work with EnyimMemcached when I interact with the memcache directly after I add the appropriate attributes (or register them manually with the RuntimeTypeModel.Default class of protobuf-net).

However, even if I do the due-diligence with registering my types with protobuf-net, I don't think any cache entry coming from NHibernate will actually be serialized by protobuf-net because NHibernate.Caches.EnyimMemcached stores entries in the cache within DictionaryEntry objects:

DictionaryEntry does not have [DataContract] and [DataMember(Order = xx)] attributes. This makes me wonder...

Can I even properly utilize the protobuf-net serializer for NHibernate 2nd level caching?

0 投票
1 回答
472 浏览

memcached - 无法获取存储的 memcached 客户端值

无法获取存储的 memcached 客户端值

这不会检索 TEST 的值,这段代码有什么问题?

Console.Out.WriteLine("开始:");

0 投票
1 回答
516 浏览

memcached - Enyim:服务器不支持操作或请求格式错误

我正在尝试使用 Enyim 客户端库从 Memcache 服务器获取键值。

连接到 memcache 服务器后,我可以写入/替换键值,但是在使用 get 操作时会抛出以下异常:

NotSupportedException was unhandled 服务器不支持操作或请求格式错误。如果是后者,请将错误报告给开发人员。

请注意,我可以使用 telnet/其他 memcache 库读取此值。

我不确定我是否遗漏了什么或者 Enyim 包中是否有错误?

这是代码。

调用函数

}

我正在使用 NuGet 的 Enyim 包(版本 2.12.0.0)。

任何帮助都会很有用。

谢谢