Estou trabalhando com um aplicativo comercial que está lançando uma SocketException com a mensagem
Uma conexão existente foi fechada à força pelo host remoto
Isso acontece com uma conexão de soquete entre cliente e servidor. A conexão está ativa e bem, e montes de dados estão sendo transferidos, mas depois são desconectados do nada.
alguém viu isso antes? Quais poderiam ser as causas? Posso adivinhar algumas causas, mas também há alguma maneira de adicionar mais esse código para descobrir qual poderia ser a causa?
Quaisquer comentários / idéias são bem-vindos.
... O mais recente ...
Eu tenho alguns logs de algum rastreamento .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
Com base em outras partes do log, vi o fato de que diz '0 # 0' significa que um pacote com 0 bytes de comprimento está sendo enviado. Mas o que isso realmente significa?
Uma das duas possibilidades está ocorrendo, e não tenho certeza de qual,
1) A conexão está sendo fechada, mas os dados estão sendo gravados no soquete, criando a exceção acima. O 0 # 0 significa simplesmente que nada foi enviado porque o soquete já estava fechado.
2) A conexão ainda está aberta e um pacote de zero bytes está sendo enviado (ou seja, o código possui um bug) e 0 # 0 significa que um pacote de zero bytes está tentando ser enviado.
O que você acha? Pode ser inconclusivo, eu acho, mas talvez alguém tenha visto esse tipo de coisa?