メッセージとともにSocketExceptionをスローしている商用アプリケーションを使用しています。
既存の接続がリモートホストによって強制的に閉じられました
これは、クライアントとサーバー間のソケット接続で発生します。接続は正常で、データのヒープが転送されていますが、どこからともなく切断されます。
誰かこれを見たことがある?原因は何でしょうか?私はいくつかの原因を推測することができますが、原因を突き止めるためにこのコードにさらに追加する方法はありますか?
コメント/アイデアは大歓迎です。
... 最新の ...
いくつかの.NETトレースからのロギングがあります。
System.Net.Sockets Verbose: 0 : [8188] Socket#30180123::Send() DateTime=2010-04-07T20:49:48.6317500Z
System.Net.Sockets Error: 0 : [8188] Exception in the Socket#30180123::Send - An existing connection was forcibly closed by the remote host DateTime=2010-04-07T20:49:48.6317500Z
System.Net.Sockets Verbose: 0 : [8188] Exiting Socket#30180123::Send() -> 0#0
ロギングの他の部分に基づいて、 '0#0'が長さ0バイトのパケットが送信されていることを示しているという事実を見ました。しかし、それは本当にどういう意味ですか?
2つの可能性のうちの1つが発生しています。
1)接続は閉じられていますが、データがソケットに書き込まれているため、上記の例外が発生しています。0#0は、ソケットがすでに閉じられているため、何も送信されなかったことを意味します。
2)接続はまだ開いており、0バイトのパケットが送信されています(つまり、コードにバグがあります)。0#0は、0バイトのパケットが送信されようとしていることを意味します。
何を考えていますか?それは私が推測する決定的ではないかもしれませんが、おそらく誰か他の人がこの種のものを見たことがありますか?