当尝试使用 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)
...
仅当我包含具有base64
或byte[]
的字段(重构以尝试两者)时,才会发生这种情况。在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