Конфигурация нескольких корзин Couchbase в .NET

У меня есть 2 корзины в Couchbase, одна из них относится к типу Couchbase, а другая — к типу Memcachced: когда я запускаю свой тест, я получаю сообщение об ошибке: серверы элементов могут появляться только один раз в этом разделе. Ниже мой конфиг:

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

person user1096099    schedule 15.05.2012    source источник


Ответы (4)


Из документации это похоже, вы можете сделать это так:

<?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>
person NeilD    schedule 02.02.2015

Я уже задавал этот вопрос ранее Couchbase с несколькими сегментами в .NET app.config, но никто не ответил.

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

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

person m03geek    schedule 15.05.2012

Я нашел способ обойти вышеуказанную проблему.

Мы можем использовать перегрузку конструктора CouchbaseClient и передать имя корзины и пароль. Пример: var client = new CouchbaseClient («по умолчанию», «»);

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

person user1096099    schedule 17.05.2012

Если вы хотите по-прежнему использовать 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"));
person John Zablocki    schedule 18.05.2012