당신은 prework으로 몇 가지 작업을 수행 할 수 있습니다
- 는 gsoap에서 클라이언트 측에서
- 사용 soap_faultdetail을 DBGLOG 수 있습니다.
99 %는 TCP 연결 시간 초과 오류가 발생하여 연결 핸드 셰이크가 실패한 것입니다. 그렇다면 WS가 어떤 이유로 연결을 수락하지 않았 음을 의미합니다. 문제의 근원은 proxy/firewall/os/buggy ws/driver 사이의 어딘가에있을 수 있습니다. 따라서 재 연결 시도를 사용할 수 있습니다. 나는 심비안에 익숙하지 해요,하지만 윈도우 OS의 재 연결에 내부적으로 수행됩니다
은 재 연결 시도가 두 번 만들어하지만이 동작 중 변경 될 수 있습니다 레지스트리 매개 변수, 드라이버 또는 winsock.
응용 프로그램 수준에서 명시 적 connection-retry 서브 루틴을 작성하고 gSOAP에 강제로 gSOAP 문서 (gSOAP 문서의 후크 섹션 참조)를 강제 실행하거나 오류가 반환되는 경우 soap_connect 몇 번만 호출해야한다고 생각합니다.
참고 : gsoap 수준에서 connection_timeout의 도입이 혼동 될 수 있습니다. 코드에이 코드가없는 경우이 코드를 넣으려는 경우이 시간 제한 내에서 재 연결 시도가 실제로 이루어 졌는지 확인하십시오. 내가 말하고자하는 것은 응용 프로그램이 30 분으로 제한 시간을 설정할 수 있지만 OS가 SYN 패킷을 WS 호스트에 넣는 것입니다. WS 호스트가 어떤 이유로 SYN-ACK로 응답하지 않으면 gsoap의 tcp_connect 서브 루틴이 30 분 낭비 루프가됩니다.