2011-05-06 4 views
0

WebHttpBinding을 사용하는 WCF 서비스가 있습니다.스로틀 링 WCF WebHttpBinding

는 I는 다음과 같은 구성을 사용

InstanceContextMode = InstanceContextMode.Single, 들면, ConcurrencyMode = ConcurrencyMode.Multiple I가 20

에 MaxConcurrentCalls 제한된

내가 참조하면 다음과 같다 : 만약 한계 값 인 20에 도달하면 새로운 연결/요청이 대기합니다. 어떻게하면 "서비스 사용 중"메시지가 대신 보내지는 것을 얻을 수 있습니까?

많은 감사

답변

0

"서비스 바쁘다"는 메시지 처리에 실패한 WCF의 결과입니다. 성공적으로 처리하는 데 약간 시간이 걸릴 수있는 요청보다 실패한 요청을 선호하는 이유가 확실하지 않습니다. 또한 WCF는 서비스 조절 매개 변수를 노출하지만 기본 제공 WCF 큐 메커니즘을 직접 구성 할 수 있다고는 생각하지 않습니다.

표시 한 것처럼 싱글 톤 구성 (maxConcurrentCalls = "1"또는 InstanceContextMode.Single) 일지라도 조절은 동시 호출뿐만 아니라 다른 두 매개 변수 (maxConcurrentSessions 및 maxConcurrentInstances)의 영향을받습니다. This article has a good overview에 관련된 세 매개 변수의 효과. 이것들과 가능한 타임 아웃 설정을 조정하면 실제로 필요한 경우 "서비스 사용 중"상태가 될 수 있습니다.

1

나는 클라이언트가 서비스가 오류 코드로 실패하는 대신 요청에 대한 시간 초과로 인해 바쁘다고 추측하는 것이 더 좋습니다.