【发布时间】:2011-08-11 08:51:24
【问题描述】:
我已经成功安装了Membase Server,他们的“亚毫秒访问延迟”功能实际上是强迫我写这个问题,否则我已经十次切换到MongoDB了。所以问题是:我已经正确安装并配置了我的 Membase 服务器,现在我希望我的 .NET 客户端应用程序能够访问这个数据库,为此我正在使用他们的 Enyim .NET 客户端。我编写了以下测试应用程序:
using System;
using System.Linq;
using System.Diagnostics;
using Membase;
using Membase.Configuration;
namespace CouchDB
{
class MainClass
{
public static void Main(string[] args)
{
var config = new MembaseClientConfiguration()
{
Bucket = "helloworld",
BucketPassword = "123",
NodeLocator = typeof(Enyim.Caching.Memcached.DefaultNodeLocator),
Transcoder = new Enyim.Caching.Memcached.DefaultTranscoder(),
KeyTransformer = new Enyim.Caching.Memcached.TigerHashKeyTransformer(),
PerformanceMonitorFactory = null // I'm on Mac OS X
};
config.SocketPool.MinPoolSize = 10;
config.SocketPool.MaxPoolSize = 20;
config.SocketPool.DeadTimeout = TimeSpan.FromSeconds(10);
config.SocketPool.ConnectionTimeout = TimeSpan.FromSeconds(5);
config.Urls.Add(new Uri("http://localhost:8091/pools/default"));
var client = new MembaseClient(config);
var spoon = client.Get<String>("Spoon");
Console.WriteLine(spoon);
}
}
}
当我尝试创建客户端时出现问题,发生的异常甚至不显示完整的堆栈,只告诉
“无法从源类型转换为目标类型”
在 System.Web.Script.Serialization.JavaScriptSerializer..ctor(resolver=null, registerConverters=false)
【问题讨论】:
-
我在这里看到的不正确的一件事是,您在配置中指定了一个名为 helloworld 的存储桶,但尝试在连接字符串中连接到一个名为 default 的存储桶。我对 Enyim 客户端不是很熟悉,但如果您遇到问题,最好从 Couchbase 网站上的示例开始。我知道你可以使用一个配置文件。一旦你开始工作,你可以调整设置以适应你的特定项目。
-
对不起两位 cmets。您还提到您在问题中使用 Membase couchDB,然后在描述中您说您使用 Membase 服务器。你可以说得更详细点吗? Couchbase 提供了 Couchbase single,这是他们的 CouchDB 版本,Membase 服务器是提供亚毫秒级延迟的产品,然后是 Couchbase 服务器,它是 CouchDB 和 Membase 的组合。如果您可以指定您使用的是哪个,我可以更好地帮助您解决问题。
-
您好,抱歉打扰了,我尝试使用 Membase Server,但现在我想我什么都不懂,我在这里创建了另一个问题 stackoverflow.com/questions/7040980/… 我将不胜感激.谢谢!