Конфигурация с несколькими ведрами 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.
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>
Я нашел способ решения вышеуказанной проблемы.
Мы можем использовать перегрузку конструктора CouchbaseClient и передать имя сегмента и пароль. Пример: var client = new CouchbaseClient("по умолчанию","");
Нет необходимости помещать все конфиг конфигурации в файлы app или web.cong.
Я задавал этот вопрос ранее Couchbase несколько блоков в.NET app.config, но никто не ответил.
Я быстро просмотрел ClientConfigurationSection в библиотеке couchbase.net и в разделе конфигурации "couchbase" вы можете определить только один сервер.
Таким образом, вы можете определить один сегмент "по умолчанию", в котором будут храниться параметры подключения других блоков. Или жесткие настройки соединения. Или создайте собственный xml-файл, который будет содержать параметры соединения и выглядеть как ваш конфиг, который выложен выше.
Если вы все еще хотите использовать 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"));