서비스를 완료하는 데 15 초가 걸린 자체 서비스 요청이 있습니다. 문제가 아니겠습니까? 실제로는 서비스 측 타이머가 있으므로 을 최대로 15 초가 걸릴 수 있습니다. 그러나 클라이언트는 "연결이 강제로 닫혔습니다."라는 메시지를보고 자동으로 GET 요청을 두 번 다시 시도하면서 System.Net 계층에서 자동으로 진단을 실행합니다.15 초 요청시 연결이 강제로 닫힘
아, BTW, 이것은 SOAP이 아닌 상황 (WCF 4 REST Service)이므로 중간에 SOAP 물건이 없습니다. 또한 클라이언트는 브라우저가 아니라 프로그램입니다.
시간을 5 초 (인위적으로 할 수 있음)로 줄이면 재시도가 중지되지만 연결 속도가 너무 빨라지는 것을 설명하기가 어려울 것입니다. HttpWebRequest.KeepAlive 플래그는 기본적으로 true이며 수정되지 않으므로 연결을 유지해야합니다.
재 시도의 타이밍은 흥미 롭습니다. 그들은 우리가 선택한 타임 아웃 (예 : 10, 15 초 또는 기타)이 끝나면 클라이언트 측이 첫 번째 응답을받은 후에 만 반응하는 것처럼 보입니다.
또 다른 한 가지 : 서비스 측면에서 아니요 표시가 없습니다. 그것은 잘 작동하지만 클라이언트에서 요청 재시도의 놀라운 (나에게) 몇 가지를 본다.
나는이 문제를 끈적 거리며 비어 있습니다. keep-alive의 표준은 AFAIK가 100 초를 넘었으므로 클라이언트가 현재와 같은 방식으로 작동하는 이유가 여전히 의아해하고 있습니다. 또한 동작이 System.Net 레이어 내에 있으므로 단계를 밟을 수 없습니다.
여기에 도움을 주시면 매우 감사하겠습니다. 이 연결을 닫기 전에 클라이언트 시간 제한 표시를 보내도록
== Tevya의 ==
해결책을 자세히 설명해주십시오. 서비스가 명시 적으로 연결을 닫지 않습니다. 그렇더라도 ASP.NET 환경에서 클라이언트에게 시간 초과 표시를 보내는 방법을 모르겠습니다. 셋째, 요청이 시간 초과되지 않습니다. 요청은 15 초 동안 지속됩니다. 클라이언트는 그렇게 오래 기다릴 수 있어야합니다. – Tevya
그러면 서비스가 암시 적으로 연결을 닫는 것 같습니다. 어떻게되는지 설명하기 위해 인프라 계층에 정통하지 않은 점은 유감입니다. –