2012-02-28 50 views

回答

1

此时,客户端无法直接进行此操作。我目前(就像刚开始时那样)正在进行一些更改,以便更好地进行异常检测。与此同时,您有2个选项:

  1. 您可以启用日志记录(显然不会帮助您在运行时)。有关如何操作的信息,请参阅http://www.couchbase.com/develop/net/current中标题为“配置日志记录”的部分。

  2. 您可以在服务器上查询有关已配置存储桶的信息。这个查询已经在代码库中,但是在一个内部类中并没有公开它的API调用。您可以创建一个扩展方法,将配置的存储桶与服务器上配置的实际存储桶进行比较。我不建议经常调用BucketExists扩展,但它应该作为在应用程序启动时调用一次的验证方法。

    public static class CouchbaseClientExtensions { 
    
        public static bool BucketExists(this CouchbaseClient client, CouchbaseClientSection section = null) { 
    
         section = section ?? (CouchbaseClientSection)ConfigurationManager.GetSection("couchbase"); 
    
         var webClient = new WebClient();    
         var bucketUri = section.Servers.Urls.ToUriCollection().First().AbsoluteUri; 
    
         var response = webClient.DownloadString(bucketUri + "/buckets");    
         var jss = new JavaScriptSerializer(); 
         var jArray = jss.DeserializeObject(response) as object[]; 
    
         foreach (var item in jArray) { 
          var jDict = item as Dictionary<string, object>; 
          var bucket = jDict.Single(kv => kv.Key == "name").Value as string; 
          if (bucket == section.Servers.Bucket) { 
           return true; 
          }        
         } 
         return false; 
        } 
    } 
    

希望有所帮助。