메시지와 함께 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 바이트 길이의 패킷이 전송되고 있음을 나타냅니다. 그러나 이것이 실제로 무엇을 의미합니까?
두 가지 가능성 중 하나가 발생하고 있으며 확실하지 않습니다.
1) 연결이 닫히고 있지만 데이터가 소켓에 기록되어 위의 예외가 발생합니다. 0 # 0은 소켓이 이미 닫혀있어 아무것도 전송되지 않았다는 의미입니다.
2) 연결이 여전히 열려 있고 0 바이트의 패킷이 전송되고 (즉, 코드에 버그가 있음) 0 # 0은 0 바이트의 패킷이 전송되고 있음을 의미합니다.
당신은 무엇을 생각합니까? 결론을 내릴 수는 없지만 다른 누군가가 이런 종류의 것을 보았을 것입니까?