1

byte[]またはエンコードされた文字列を使用してドキュメントを挿入/アップサートしようとするとbase64、例外が発生し、!result.Success

指定された引数は有効な値の範囲外です。
パラメータ名:カウント

私の文書には count という名前のものが含まれていません。この例外はすべての内部例外を運びます

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これは、 orを持つフィールドを含めた場合にのみ発生しますbyte[](両方を試すようにリファクタリングされています)。NancyFX をフロントエンドとして使用し、Couchbase をデータベースとして使用する windows7 pro 64 ビット マシン。

正しい方向に導く 2.0 .Net SDK または 3.0.2 Server のドキュメントを見つけることができず、#couchbase IRC にアクセスしましたが、まだ運がありません。ファイルサイズに関連する設定があるようです (テストデータは 26.7k png です)。うまくいけば、私が誤解しているのは簡単なことです。

4

1 に答える 1

1

私のチームも同じ問題に遭遇し、#libcouchbase IRC チャンネルで次のように説明しました。

2.0 .Net Client コードを使用すると、32K バイトを超えるレコードを挿入できません。次のエラーが表示されます:「指定された引数は有効な値の範囲外でした。\r\nパラメータ名: カウント」

私はすぐに応答を得ました:

<jefe1> は、明日 [2/3/15] にリリースされる 2.0.2 で修正されたバグです。

バッファの長さを手動で設定することで、この問題を個別に解決しました。

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

(チームが使用した正確な設定はわかりません。)

そして、これは問題を説明して修正する Couchbase チェックインへのリンクです: https://github.com/couchbase/couchbase-net-client/commit/80ba3cfadc3aa8ba0dc889a16056252617628324

于 2015-02-03T16:05:00.863 に答える