2012-05-15 7 views
5

У меня есть два ведра в Couchbase, один из которых - тип Couchbase, а другой тип Memcachced: когда я запускаю свой тест, я получаю сообщение об ошибке: серверы элементов могут появляться только один раз в этом разделе. Ниже мой конфиг:Конфигурация большого контейнера в Couchbase в .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. 

ответ

0

Я задал этот вопрос раньше Couchbase multiple buckets in .NET app.config, но никто не ответил.

Я быстро просмотрел файл ClientConfigurationSection библиотеки couchbase .net и в разделе «couchbase» конфигурации вы можете определить только один сервер.

Таким образом, вы можете определить один ведро «по умолчанию», в котором будут храниться параметры подключения других ведер. Или установление соединения с жестким кодом. Или создайте собственный XML-файл, который будет содержать параметры подключения и будет выглядеть как ваш конфигуратор, который был выше.

+0

Их документация требует серьезной работы. Это ужасно! – slimflem

0

Я нашел способ для вышеупомянутой проблемы.

Мы можем использовать перегрузку конструктора CouchbaseClient и передавать в bucketname и пароль. Ex: var client = new CouchbaseClient ("default", "");

Не нужно размещать все конфигурации bucket в файлах приложения или web.cong.

0

Если вы хотите по-прежнему использовать App | Web.config, вы также можете просто создать второй раздел конфигурации следующим образом:

<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

С the documentation, похоже, что вы можете сделать это следующим образом:

<?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>