Существующее соединение было принудительно закрыто удаленным хостом.
Это происходит при сокетном соединении между клиентом и сервером. Соединение живо-здорово, передается куча данных, но потом оно неожиданно обрывается.
Кто-нибудь видел такое раньше? Каковы могут быть причины? Я могу догадаться о нескольких причинах, но есть ли способ добавить что-то еще в этот код, чтобы выяснить, в чем может быть причина?
Любые комментарии/идеи приветствуются.
... Самая последняя...
У меня есть некоторые записи из некоторой трассировки .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#0 означает, что пытается отправить пакет с нулевыми байтами.