Couchbase는 memcached 서버에 클라이언트를 제공하지만 enyim.caching 클라이언트를 작동 시키려고합니다.Enyim을 얻을 수 없습니다. MemcachedClient를 Couchbase와 함께 사용하려면
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="couchbase" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
</configSections>
<couchbase>
<servers bucket="default" bucketPassword="myPassword">
<add uri="http://127.0.0.1:8091/pools"/>
</servers>
</couchbase>
<enyim.com>
<memcached>
<servers>
<add address="127.0.0.1" port="8091" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:10:00" deadTimeout="00:02:00" />
<authentication type="Enyim.Caching.Memcached.PlainTextAuthenticator, Enyim.Caching" zone="" userName="Administrator" password="myPassword" />
</memcached>
</enyim.com>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
: 여기
class Program
{
static void Main(string[] args)
{
var client = new CouchbaseClient();
client.Store(StoreMode.Set, "somekey", "somevalue");
var somevalue = client.Get<string>("somekey");
Console.WriteLine(somevalue);
Console.ReadLine();
var mclient = new MemcachedClient();
mclient.Store(StoreMode.Set, "Hello", "World");
var myVal = mclient.Get<string>("Hello");
Console.WriteLine(myVal);
Console.ReadLine();
}
}
내의 app.config의 :
여기에 거의 enyim MemcachedClient과 같은 일 다음 내 사소한 C#을 (작동)에 카우치베이스 주식회사 클라이언트를 사용하는 코드와의 코드를 단계별로 실행하면 Couchbase 클라이언트가 제대로 작동하는 것처럼 보입니다. Get 메서드는 "somevalue"를 예상대로 반환합니다. 이 코드는 또한 MemcachedClient 코드를 통해 행복하게 단계를 밟지 만 Store 메서드를 단계별로 실행하면 10 초 동안 멈 춥니 다 (타임 아웃이라고 생각합니다). 그런 다음 myVal 값이 null로 반환됩니다. 오류가 발생하지 않습니다.
config에 memcached의 인증 노드에있는 zone
값을 중심으로 문제가 발생한다고 생각합니다. enyim.caching 소스 코드 (Github에서 검색)에있는 DemoApp 코드에서 zone은 지정되지 않지만 영역이 제공되지 않으면 enyim에서 오류가 발생합니다. 즉, demoApp는 zone isn ' 제공됨.
이 문제는 확실하지 않지만 영역을 벗어날 수는 없다는 것을 알고 있지만 그 값으로 무엇을 사용해야할지 모르겠다. 'AUTHZ'가 사용 된 예를 보았지만 차이는없는 것으로 보입니다.
내가 잘못하고있는 사람을 누구나 볼 수 있습니까? 어떤 도움을 주셔서 감사합니다! :)
또 다른 옵션은 Couchbase 버킷을 유지하고 포트를 112211로 설정하는 것입니다. CouchbaseClient를 사용하는 것이 여전히 권장되는 방법이지만 영구 버킷을 원한다면 옵션입니다. –
나는 어떻게 그 일을 할 지 모르겠다. Couchbase 버켓의 포트는 이미 112211 (기본적으로)으로 설정되어 있습니다. 내 config 파일을 사용하여 설정하는 방법을 잘 모르겠습니다 ... –
코드 스 니펫이 이어집니다. app.config도 비슷하게 설정되지만 위와 같이 8095 대신 11211을 설정할 수 있습니다. 'var cfg = new MemcachedClientConfiguration(); cfg.AddServer ("192.168.56.10", 11211); cfg.Protocol = MemcachedProtocol.Binary; var m = new MemcachedClient (cfg); ' –