1

ServiceStack Redis クライアントをテストしていたところ、Windows Server 2003 R2 のパッケージのサイズに関連するエラーが発生しました。

30MB 未満のファイルの場合は問題なく動作しますが、32 ~ 33MB を超えるファイルの場合はエラーが発生し始めました。Windows Server 2003 R2 でのみ発生しましたが、Windows 7 と Windows 2008 R2 で正常にテストされました。

コード:

String text = File.ReadAllText("file.xml");
String key = Guid.NewGuid().ToString();            
if (redisClient.Add(key, text, DateTime.Now.AddSeconds(300)))
    String Result = redisClient.Get<object>(key) as String;

エラー:

System.Net.Sockets.SocketException (0x80004005): An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

OSの制限によるものなのか、それともRedisのServiceStackクライアントの問題なのか、誰にもわかりません。

前もって感謝します。

4

1 に答える 1

1

私もこの問題に遭遇しました。TCPウィンドウサイズなどの変更に関連するソリューションをオンラインで見ましたが、すべてを単純にgzipしました。これはすべての場合に機能するとは限りません (特に、コンテンツが既に圧縮されている場合)。ただし、圧縮がオプションである場合は、それを試してみます。

于 2014-03-10T19:27:05.617 に答える