Sample C# code specifies the password as parameter:
[code]class Program
{
static void Main(string[] args)
{
try
{
var client = new CouchbaseClient(“couchbase”, “beer-sample”, “123”);
var res = client.ExecuteGet(“21st_amendment_brewery_cafe”);
if (res.Success)
Console.WriteLine(“Get worked!”);
else
Console.WriteLine(“Get failed!”);
Get worked!
ViewException: Query failed for view by_location in design document beer / password required.
So the password provided in C# code is working for Get operation, as expected, but not for views, which ignore it. If I add the “123” bucket password to the configuration file, it works fine.
public CouchbaseClientConfigurationFix(string sectionName, string bucketName, string bucketPassword)
{
var section = (CouchbaseClientSection)System.Configuration.ConfigurationManager.GetSection(sectionName);
if (section == null)
throw new System.Configuration.ConfigurationException("Could not find Couchbase section '" + sectionName + "'");
_base = section;
var tmp = section.HttpClientFactory;
_clientFactory = tmp == null ? DefaultHttpClientFactory.Instance : tmp.CreateInstance();
_bucketOverride = bucketName;
_passOverride = bucketPassword;
}
public string Bucket { get{ return _bucketOverride??_base.Bucket;}}
public string BucketPassword { get { return _passOverride??_base.Password;}}
public IHttpClient CreateHttpClient(Uri baseUri)
{
return _clientFactory.Create(baseUri, this.Bucket, this.BucketPassword, HttpClient.Timeout, HttpClient.InitializeConnection);
}
public INameTransformer CreateDesignDocumentNameTransformer() { return _base.CreateDesignDocumentNameTransformer(); }
public Enyim.Caching.Memcached.IMemcachedKeyTransformer CreateKeyTransformer() { return _base.CreateKeyTransformer(); }
public Enyim.Caching.Memcached.IMemcachedNodeLocator CreateNodeLocator() { return _base.CreateNodeLocator(); }
public Enyim.Caching.Memcached.IPerformanceMonitor CreatePerformanceMonitor() { return _base.CreatePerformanceMonitor(); }
public Enyim.Caching.Memcached.ITranscoder CreateTranscoder() { return _base.CreateTranscoder(); }
public IHeartbeatMonitorConfiguration HeartbeatMonitor { get { return _base.HeartbeatMonitor; } }
public IHttpClientConfiguration HttpClient { get { return _base.HttpClient; } }
public TimeSpan HttpRequestTimeout { get { return _base.HttpRequestTimeout; } }
public TimeSpan ObserveTimeout { get { return _base.ObserveTimeout; } }
public string Password { get { return _base.Password; } }
public int RetryCount { get { return _base.RetryCount; } }
public TimeSpan RetryTimeout { get { return _base.RetryTimeout; } }
public Enyim.Caching.Configuration.ISocketPoolConfiguration SocketPool { get { return _base.SocketPool; } }
public IList<Uri> Urls { get { return _base.Urls; } }
public string Username { get { return _base.Username; } }
}
[/code]
and then
var config = new CouchbaseClientConfigurationFix("couchbase", "beer-sample", "123");
var client = new CouchbaseClient(config);
var res = client.ExecuteGet("21st_amendment_brewery_cafe");
if (res.Success)
...