问题标签 [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.
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”的例子,但这似乎没有任何区别。
有人看到我在这里做错了吗?任何帮助表示赞赏!:)
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 删除强名称要求。但它没有锻炼。
任何人都可以帮助我吗?
asp.net - 空缓冲区错误
我刚刚注意到,在运行应用程序时,我会定期收到一条错误消息。
堆栈跟踪:
我们的应用程序使用 Enyim memcached 和 MemcachedProviders 并在负载平衡的环境中运行。
该应用程序做了很多管理 PDF 报告和编译响应然后生成最终报告 pdf 的工作。所以我们经常使用流。
这个问题似乎只影响我们的管理应用程序,因为我们还公开了一个 Web 服务,而且在查看服务定义和 WSDL 时我从来没有遇到过错误。
通过查看数据库中的会话表,我可以看到它们正在被创建,但是它们中的许多在 SessionItems 字段中具有空值,并且锁定标志设置为 1。数据时间戳似乎与空缓冲区错误发生相关。
这是缓冲区设置不正确或最大化的情况吗?
memcached - 如何在多个服务器之间使用 memchached 方法分配缓存?
我正在尝试跨多个服务器分配缓存。我已经在 2 个 Linux 服务器上安装了 Memcached。我正在使用 .Net 客户端库来操作这些服务器上的缓存。
它总是在配置的第一台服务器上存储价值。我试图改变服务器的顺序,它只存储在列表中的第一个。
我使用 Putty 检查服务器上是否存在对象。
问题是:
如何同时在两台服务器上存储对象?
如果我想验证该对象是否存储在配置文件中的所有服务器上
我如何从客户端库中做到这一点?
这是我的代码示例:
和配置
asp.net-mvc - 用于 EnyimMemcached 问题的 protobuf-net 转码器
从 protobuf-net 到 enyim 缓存的转码器是否已弃用?使用 protobuff-net 进行分布式缓存
当我尝试启动 MemcachedClient() 时,像这个app.config一样设置我的 Enyim 配置会导致错误
转码器类型="ProtoBuf.Caching.Enyim.NetTranscoder"/
两者都通过 nuget 安装并使用可用的最新版本。
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.Caching
v2.3
然而,当我把所有东西都连接起来时,我得到了一个The located assembly's manifest definition does not match the assembly reference.
错误。问题似乎是:
NHibernate.Caches.EnyimMemcached
想要Enyim.Caching
v2.3protobuf-net.Enyim
想要Enyim.Caching
v2.12
他们玩得不好。我尝试添加程序集重定向,但无济于事:
“最新”的 Enyim.Caching 程序集(通过 EnyimMemcached 包)只有 v2.12。哦!2.12比2.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 程序集。一切都是肉汁!
c# - 从程序集中删除签名
我在 Visual Studio 中打开了一个项目(它恰好是 Enyim.Caching)。这个程序集想要延迟签名。事实上,它非常渴望被延迟签名,以至于我无法强制 Visual Studio 编译它而不延迟签名。
我在 Visual Studio 项目属性框中取消选中“仅延迟签名”和“签署程序集”,然后重新构建。组件仍标记为延迟标志(如 所示
sn.exe -v
)。我已卸载项目并验证签名设置为 false。重新加载项目时,选中“Sign”和“Delay Sign”复选框。
我已验证 AssemblyInfo(或其他地方)中不存在会导致此问题的属性。
我在互联网上搜索了解决方案,但没有找到。
我怎样才能做到这一点?
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?
memcached - 无法获取存储的 memcached 客户端值
无法获取存储的 memcached 客户端值
这不会检索 TEST 的值,这段代码有什么问题?
Console.Out.WriteLine("开始:");
memcached - Enyim:服务器不支持操作或请求格式错误
我正在尝试使用 Enyim 客户端库从 Memcache 服务器获取键值。
连接到 memcache 服务器后,我可以写入/替换键值,但是在使用 get 操作时会抛出以下异常:
NotSupportedException was unhandled 服务器不支持操作或请求格式错误。如果是后者,请将错误报告给开发人员。
请注意,我可以使用 telnet/其他 memcache 库读取此值。
我不确定我是否遗漏了什么或者 Enyim 包中是否有错误?
这是代码。
调用函数
}
我正在使用 NuGet 的 Enyim 包(版本 2.12.0.0)。
任何帮助都会很有用。
谢谢