2012-09-12 3 views
2

Windows 서비스에서 호스팅되는 WCF 웹 서비스가 있습니다.WCF 서비스를 열 수 없습니다. 클라이언트 호출이 너무 많습니다.

이 서비스는 내가 한 번에 50 개 쓰레드를 생성하고 내가 모든 WCF에 대해 작업을 조회, 바로 해당 서비스를 시작하고 테스트 클라이언트를 생성

<ServiceBehavior(ConcurrencyMode:=ConcurrencyMode.Multiple, 
InstanceContextMode:=InstanceContextMode.PerCall, 
UseSynchronizationContext:=False)> 

다음과 같은 속성 (VB)를 사용하여 구성 서비스. 첫 번째 30 개 정도의 여는 (client.open()) 작업을하지만 나중에 클라이언트에서 서비스를 열려고 할 때 시간 초과가 있었기 때문에 열기를 수행 할 수 없다는 오류 메시지가 표시되어 EndPointNotFoundException이 발생합니다. . (내가 말하는 호출은 모두 중요합니다.)

이러한 종류의 동작이 예상되므로 이러한 예외 상황을 그냥 지켜야합니까? 아니면 위의 설정 중 일부를 봐야합니까? 또는 다른 설정? (NetTcpBinding을 사용하고 있습니다.)

클라이언트가 동시에 작성된 스레드의 요청에 동시에 작업하므로 위의 설정이 다중 사용자 user-at-the- -same-time-enabled.

하지만 이상적으로는 타임 아웃 예외가 발생하지 않습니다. 오히려 나는 시간 초과보다는 응답을 얻기 위해 고객이 더 오래 기다리 길 원할 것입니다.

아이디어가 있으십니까?

감사합니다. 이와 같은

+0

클라이언트의 대기 시간을 늘리려면 클라이언트의 열린 시간 초과 값을 변경하면됩니다. – Paciv

답변

1

확인 설정 :

<behavior name="CommonServices_Behavior"> 
    <serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="50" 
    maxConcurrentInstances="50" /> 
</behavior> 

나는이 일부 값은 기본값이 machine.config 파일에 설정했는지 기억 보인다. MaxConnections value to check for NetTcpBinding도 있습니다.

+0

감사합니다. 이러한 설정을 살펴 보겠습니다. – spse