2014-02-05 2 views
0

Я пытаюсь настроить простую настройку Couchbase для примера, обмениваясь сообщениями с клиентом C#, но это дает мне возможность. Я установил Couchbase и добавил ведро memcached. Вот мой простой код для общения с ним:Простая Couchbase с установкой клиента C# с ошибкой

public static void MemcachedTest() 
{ 
    CouchbaseClient client = new CouchbaseClient(); // failure point! 
    client.Store(Enyim.Caching.Memcached.StoreMode.Set, "Testing", "Hello world"); 
    var test = client.Get("Testing"); 
} 

Вот моя app.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<startup> 
    <configSections> 
    <section name="couchbase" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/> 
    </configSections> 
    <couchbase> 
    <servers bucket="testbucket"> 
     <add uri="http://127.0.0.1"/> // tried lots of different values here. 
    </servers> 
    </couchbase> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /></startup> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Ошибка пустая ссылка исключение, без внутренних деталей исключения. Трассировка стека:

at Couchbase.CouchbaseClient..ctor(ICouchbaseClientConfiguration configuration) 
at Couchbase.CouchbaseClient..ctor() 
at CacheClientTests.Program.MemcachedTest() in C:\Dev\Experiments\CacheClientTests\CacheClientTests\CacheClientTests\Program.cs:line 72 
at CacheClientTests.Program.Main(String[] args) in C:\Dev\Experiments\CacheClientTests\CacheClientTests\CacheClientTests\Program.cs:line 79 
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
at System.Threading.ThreadHelper.ThreadStart() 

Почему эта простая конфигурация не работает?

+0

Включите больше из stacktrace, gist это или что-то, если оно супер большое. Также вы попробовали uri как «http://127.0.0.1:8091/pools»? Этот ответ, вероятно, имеет отношение к вашей проблеме. Http://stackoverflow.com/questions/12677445/unable-to-get-enyim-caching-memcachedclient-to-work-with-couchbase?rq=1 – scalabilitysolved

+0

@scalabilitysolved I включил полную трассировку стека, и я попробовал ури, о котором вы упомянули, но ничего не изменило. – Jim

ответ

4

Ваша проблема является App.config не структурировано правильно, и вы не указываете порт 8091 в вашем загрузчике URI:

<configuration> 
    <configSections> 
    <section name="couchbase" type="Couchbase.Configuration.CouchbaseClientSection, Couchbase"/> 
    </configSections> 
    <couchbase> 
    <servers bucket="testbucket"> 
     <add uri="http://127.0.0.1:8091/pools"/> 
    </servers> 
    </couchbase> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Это должно работать правильно. Ваша конкретная проблема состояла в том, что элемент <startup> не был правильно выстроен - обратите внимание, что если есть раздел <configSections>, он должен быть первым элементом после <configuration>.

Смежные вопросы