Estoy trabajando con una aplicación comercial que arroja una SocketException con el mensaje,
Una conexión existente fue cerrada por la fuerza por el host remoto
Esto sucede con una conexión de socket entre el cliente y el servidor. La conexión está viva y bien, y se están transfiriendo montones de datos, pero luego se desconecta de la nada.
Alguien ha visto esto antes? ¿Cuáles podrían ser las causas? Puedo adivinar algunas causas, pero ¿hay alguna manera de agregar más a este código para determinar cuál podría ser la causa?
Cualquier comentario / ideas son bienvenidas.
... Lo último ...
Tengo algunos registros de un seguimiento de .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
Basado en otras partes del registro, he visto el hecho de que dice '0 # 0' significa que se está enviando un paquete de 0 bytes de longitud. Pero, ¿qué significa esto realmente?
Está ocurriendo una de dos posibilidades, y no estoy seguro de cuál,
1) La conexión se está cerrando, pero los datos se están escribiendo en el socket, creando así la excepción anterior. El 0 # 0 simplemente significa que no se envió nada porque el socket ya estaba cerrado.
2) La conexión aún está abierta y se está enviando un paquete de cero bytes (es decir, el código tiene un error) y el 0 # 0 significa que se está intentando enviar un paquete de cero bytes.
¿Que cuentas? Supongo que podría no ser concluyente, pero ¿tal vez alguien más ha visto este tipo de cosas?