我对Couchbase数据库很陌生,并且第一次尝试编写代码以连接到远程Couchbase服务器。我已经用C#编写了一个控制台应用程序,其中有一个app.config文件和program.cs文件。
我的app.config文件如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<configSections>
<sectionGroup name="couchbaseClients">
<section name="couchbase"
type="Couchbase.Configuration.Client.Providers.CouchbaseClientSection, Couchbase.NetClient"/>
</sectionGroup>
</configSections>
<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>
<couchbaseClients>
<couchbase useSsl="false" operationLifeSpan="1000">
<servers>
<add uri="http://xxx.xxx.xxx.xxx:8091/pools"></add>
<add uri="http://xxx.xxx.xxx.xxx:8091/pools"></add>
</servers>
<buckets>
<add name="default" useSsl="false" Username="xxxxxx" password="xxxxx" operationLifespan="2000">
<connectionPool name="custom" maxSize="10" minSize="5" sendTimeout="12000"></connectionPool>
</add>
</buckets>
</couchbase>
</couchbaseClients>
</configuration>
我的Program.cs文件如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Couchbase;
using Enyim.Caching.Memcached;
using Newtonsoft.Json;
using System.Configuration;
namespace CouchBase_ConnectionTester
{
class Program
{
static void Main(string[] args)
{
using (var cluster = new Cluster("couchbaseClients/couchbase"))
{
using (var bucket = cluster.OpenBucket())
{
}
}
}
}
}
当我尝试调试代码时,它在代码行引发错误
using (var cluster = new Cluster("couchbaseClients/couchbase"))
错误信息如下
“ Couchbase.Cluster”的类型初始值设定项引发了异常。
内部异常如下
无法从配置部分“通用/日志记录”中获取Common.Logging的配置
请帮我。提前感谢
最佳答案
不幸的是,我无法重现您在此特定设置中看到的错误。但是,对于您的问题,我确实有一个答案:“如何创建从C#到远程Couchbase数据库的数据库连接”。
CData ADO.NET Provider是一个驱动程序,使您可以像访问关系数据库一样访问Couchbase数据。这是通过将N1QL REST API包装到基于标准的驱动程序中来完成的,该驱动程序包含了熟悉的.NET数据库功能。
从存储桶中进行查询就像以下代码一样简单:
string connectionString = "User='myusername';Password='mypassword';Server='http://couchbase40'";
using (CouchbaseConnection connection = new CouchbaseConnection(connectionString)) {
CouchbaseCommand cmd = new CouchbaseCommand("SELECT * FROM Customer", connection);
CouchbaseDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) {
Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Name"], rdr["TotalDue"]));
}
}
您可以下载2016驱动程序here的免费Beta版。