无法使用 C# 客户端在 Couchbase 中加载 byte[] 或 base64 数据



当尝试使用 byte[]base64 编码字符串插入/更新文档时,我收到异常和!result.Success

指定的参数超出了有效值的范围。
参数名称:计数

我的文档不包含任何名为计数的内容。 此异常都带有一个内部异常

StackTrace
at System.Net.Sockets.SocketAsyncEventArgs.SetBufferInternal(Byte[] buffer, Int32 offset, Int32 count)   
at Couchbase.IO.Connection.Send(Byte[] buffer)   
at Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation)  
...

仅当我包含具有base64byte[]的字段(重构以尝试两者)时,才会发生这种情况。在Windows7 pro 64位计算机上,使用NancyFX作为前端,Couchbase作为数据库。

我一直找不到任何 2.0 .Net SDK 或 3.0.2 服务器文档可以引导我朝着正确的方向前进,并且已经联系了 #couchbase IRC,但还没有运气。 似乎确实有任何与文件大小相关的设置(测试数据为 26.7k png)。 希望这是我误解的简单事情。

我的团队遇到了同样的问题,我们在 #libcouchbase IRC频道上这样描述它:

使用 2.0 .Net 客户端代码,我们无法插入更多记录 超过 32K 字节时,我们收到以下错误:"指定的参数是 超出有效值范围。\r参数名称:计数"

我立即得到了回复:

这是 2.0.2 中修复的错误,将于明天发布 [2/3/15]

我们通过手动设置缓冲区长度独立解决了这个问题:

cluster.Configuration.PoolConfiguration.MaxSize =
    ConfigurationSettings.Instance.CouchbaseMaxConnections;
cluster.Configuration.PoolConfiguration.BufferSize =
    ConfigurationSettings.Instance.CouchbaseBufferSizeBytes;

(我不知道团队使用的确切设置。

而且,这是指向 Couchbase 签入的链接,用于描述和修复问题:https://github.com/couchbase/couchbase-net-client/commit/80ba3cfadc3aa8ba0dc889a16056252617628324

相关内容

  • 没有找到相关文章

最新更新