2012-05-15 11 views
5

Ich habe 2 Buckets in Couchbase ist einer Couchbase-Typ und die andere ist Memcachced Typ: Wenn ich meinen Test ausführen bekomme ich einen Fehler: Die Element-Server möglicherweise nur einmal in diesem Abschnitt angezeigt. Unten ist mein config:Mehrere Couchbase-Bucket-Konfiguration in .NET

<couchbase> 
    <servers bucket="RepositoryCache" bucketPassword=""> 
     <add uri="http://127.0.0.1:8091/pools/default"/> 
    </servers> 

    <servers bucket="default" bucketPassword=""> 
     <add uri="http://127.0.0.1:8091/pools/default"/> 
    </servers> 
    </couchbase> 

How to configure multiple buckets and resolve the issue? I hv read the manual and I could not find much help. 

Antwort

0

ich diese Frage früher gefragt habe Couchbase multiple buckets in .NET app.config aber niemand antwortete.

Ich habe einen schnellen Blick durch die ClientConfigurationSection der Couchbase .net Bibliothek und in "Couchbase" Abschnitt der Konfiguration können Sie nur einen Server definieren.

Sie können also einen Bucket "Standard" definieren, der die Verbindungsparameter eines anderen Buckets speichert. Oder Hardcode-Verbindungseinstellungen. Oder erstelle eine eigene XML-Datei, die Verbindungsparameter enthält und wie deine oben beschriebene Konfiguration aussieht.

+0

Ihre Dokumentation benötigt einige ernsthafte Arbeit. Es ist furchtbar! – slimflem

0

Ich fand einen Weg für das obige Problem.

Wir können den CouchbaseClient-Konstruktor überladen und den Bucketname und das Passwort übergeben. Beispiel: var client = neuer CouchbaseClient ("default", "");

Es ist nicht erforderlich, alle Bucket-Konfigurationen in die App- oder web.cong-Dateien zu stellen.

0

Wenn Sie noch wollen App verwenden | Web.config, können Sie auch erstellen, einen zweiten Abschnitt Config wie folgt:

<section name="otherconfig" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/> 

<otherconfig> 
    <servers bucket="default" bucketPassword=""> 
     <add uri="http://127.0.0.1:8091/pools"/> 
    </servers> 
    </otherconfig> 

var client = new CouchbaseClient((CouchbaseClientSection)ConfigurationManager.GetSection("otherconfig")); 
1

Von the documentation, es sieht aus wie Sie es wie folgt tun:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="couchbase"> 
     <section name="bucket-a" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/> 
     <section name="bucket-b" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/> 
    </sectionGroup> 
    </configSections> 

    <couchbase> 
    <bucket-a> 
     <servers bucket="default"> 
     <add uri="http://127.0.0.1:8091/pools" /> 
     </servers> 
    </bucket-a> 
    <bucket-b> 
     <servers bucket="beernique" bucketPassword="b33rs"> 
     <add uri="http://127.0.0.1:8091/pools" /> 
     </servers> 
    </bucket-b> 
    </couchbase> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration>