ServiceStackを使用して、バッファサイズの制限を超えたという同じ問題を再現することができました。ストレステストを行うためのコードはここにあります-アプリケーションの20のインスタンスを少なくとも20分間実行します。 https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3
表示される最初のエラーは、Redisがビジーロードで接続できないことで説明されているように、「Redisインスタンスに接続できませんでした」ですが、内部例外を展開すると、「システムに十分なバッファがないため、ソケットでの操作を実行できませんでした」と表示されます。スペースまたはキューがいっぱいだったため」
私の問題はWindow7で発生しましたが、Window Server2008rcでは発生しませんでした。そこで、OSの問題かどうかを調べ始めます。 ServiceStackでDemisに電子メールを送信した後、ServiceStackはソケットを正しく閉じていたと結論付けられました。 OSを見ると、TcpTimeWaitDelayとMaxUserPortを設定することで問題が修正されました。
その他の参考資料。 TcpTimeWaitDelayを45秒に
およびMaxUserPorthttp://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html
ポート範囲を1025-64511に調整しました