我创建了这个简单的应用程序
using System;
using System.Configuration;
using System.Threading;
using Couchbase;
using Couchbase.Configuration;
namespace SimpleCouchClientTest
{
/// <summary>
/// Simple couch client test
/// </summary>
class Program
{
static void Main(string[] args)
{
var connectionString = "http://localhost:8091/pools/";
var bucketName = "testbucket";
var bucketPassword = "testbucket";
var numberOfLoops = 1000;
for (var i = 0; i <= numberOfLoops; i++)
{
var config = new CouchbaseClientConfiguration
{
Bucket = bucketName,
BucketPassword = bucketPassword,
};
config.Urls.Add(new Uri(connectionString));
Console.WriteLine("Creating client #" + i);
var couchClient = new CouchbaseClient(config);
Console.WriteLine("Client #" + i + " created.");
//Thread.Sleep(100); //-- uncomment this to run successfully
}
}
}
}
numberOfLoops
设置为1000,在第一个客户端之后,CouchbaseClient创建挂起。我运行了WinDbg会话,得知客户端被BucketConfigListener.Start()
卡住了。
这是一个已知的问题吗?有什么变通方法吗?
发布于 2014-02-19 17:05:04
我也遇到了同样的问题,最终解决了这个问题。我正在运行fiddler2来检查web请求/响应的内容。然而,这干扰了bucketsStreaming URI。
一旦我关闭了fiddler2并确保没有其他代理就位,它就工作得很好。在尝试初始化构造函数之前,通过重新启动fiddler2,我还可以按需重现该问题。
如果这也是你正在经历的,请让我知道。
发布于 2014-01-28 04:25:58
您应该将"new config(CouchbaseClient);“移到循环之外。
例如:
var config = new CouchbaseClientConfiguration
{
Bucket = bucketName,
BucketPassword = bucketPassword,
};
config.Urls.Add(new Uri(connectionString));
Console.WriteLine("Creating one client for all my app needs");
var couchClient = new CouchbaseClient(config);
for (var i = 0; i <= numberOfLoops; i++)
{
// use client to do your test operations get/set/etc
}
https://stackoverflow.com/questions/21390152
复制相似问题