我正在尝试使用.NET客户端刷新存储桶中的所有数据。 这是我正在使用的代码:
_instance = new CouchbaseClient();
_instance.FlushAll();
但是,抛出以下异常消息 “要刷新Couchbase存储桶,请使用Couchbase.Management API。”
我也启用了“Flush”启用设置。
答案 0 :(得分:5)
以下代码在我对无负载的存储桶进行快速测试时成功运行。它使用集群管理器来执行刷新而不是客户端。请进一步测试。文档参考为http://docs.couchbase.com/couchbase-sdk-net-1.3/#cluster-management-with-the-net-client-library。
var config = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbase");
var cluster = new CouchbaseCluster(config);
cluster.FlushBucket("MyBucket");
我遇到了一些我要分享的事情,以避免同样的痛苦。首先,必须引用System.Configuration才能使用ConfigurationManager。只是将using语句放在我的代码中是不够的。我必须按System.Configuration.ConfigurationManager not available?。
中的说明手动添加它其次,使用集群管理器需要凭据。因此我不得不将它们放入app.config文件中。示例如下。
<couchbase>
<servers bucket="MyBucket" bucketPassword="password" username="Administrator" password="password">
<add uri="http://localhost:8091/pools"/>
</servers>
</couchbase>
答案 1 :(得分:2)
该错误似乎告诉您在端口8091上使用REST API。http://docs.couchbase.com/couchbase-manual-2.5/cb-rest-api/
虽然我不得不说,如果这是一个Couchbase存储桶,你可能最好删除存储桶并重新创建它。做你正在谈论的事情会花费很多开销,但只是丢掉桶应该很简单,应该更快。您还可以在端口8091上使用Admin REST API来执行此操作。测试每个,看看删除是否比冲洗更好,反之亦然。
答案 2 :(得分:1)
您可以使用以下代码:
var bucket = cluster.OpenBucket("MyBucket");
var manager = bucket.CreateManager("Administrator", "password");
manager.Flush();