IIS에서 호스팅되는 WCF 서비스가 있습니다. 로그 파일에서 3 분 이상 걸리는 요청을 보내는 클라이언트가 HTTP 503 (서비스를 사용할 수 없음) 오류를 수신하는 것을 볼 수 있습니다.IIS가 호스팅하는 WCF 서비스에서 시간 제한을 어떻게 변경합니까?
어떻게 타임 아웃을 변경합니까? 테스트 해보기 위해 타임 아웃을 3 초로 줄여 실제로 타임 아웃되었는지 확인했습니다.
나는 아무것도 할 듯
<system.web>
<httpRuntime executionTimeout="3"/>
</system.web>
을 시도했습니다.
또한 바인딩을 사용하지 않으려 고 시도했습니다.
<basicHttpBinding>
<binding name="basicHttp" receiveTimeout="00:00:03" sendTimeout="00:00:03" >
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
참고 : 우리가 제어하는 기간이 지난 후에 일종의 오류를 반환하는 WCF 서비스를 얻으려고합니다. 나는 예상보다 오래 걸린 요청을 기다릴 것이라고 기대하지 않습니다.
내가 머리를 찢기 전에 가장 도움이되는 도움이 필요합니다.
그냥 명확히하기
...이 서비스는 최대 있었고 몇 달 동안 실행하고있다. 그러나 가끔 실행되는 요청을 처리 할 때 클라이언트는 3 분 후에 HTTP 503 응답을받습니다. 배경에서는 요청이 제대로 처리되었지만 5 분 이상 걸렸습니다. 분명히 클라이언트가 이미 오류 응답을 수신 했으므로이 시점까지는 너무 늦었습니다.
다른 요청은 정상적으로 처리되고 있습니다.
이 시점에서 시스템 부하는 매우 낮습니다. 사실, 이것은 테스트 환경이며 트랜잭션은 중복되지 않고 한 번에 하나씩 있습니다.
또한 바인딩이 끝점에 연결되어 있는지 확실히 알고 있습니다. WCF Config Editor에서 config 파일을 열었습니다. 모든 것이 제대로 연결되었습니다.
WCF의이 시점에서 시간 제한을 구성 할 수 있습니까? 그런 식으로 나는 이해하지 못할 것이다. 그렇다면 HTTP 503 오류가 반환되는 이유는 무엇인가?
우리가 정말로하고 싶은 것은 503 응답이 반환되기 전에 시간 길이를 제어하는 것입니다.
비동기 적으로 실행하고 결과를 폴링하는 것에 대해 생각해 보셨습니까? – ChrisBint
서비스가 현재 생산 중이며 가까운 장래에 그런 종류의 변화가 일어나지 않을 것입니다. 당분간, 우리는 단지 타임 아웃 기간을 제어하려고합니다. – illusio
서비스에 바인딩 오류가있는 경우 (특별한 처리없이) 클라이언트는 http 오류 만 표시합니다. 클라이언트 프록시의 시간 제한을 3 초로 변경하면 클라이언트는 예상 한 통신 예외를 확인해야합니다. – ErnieL