2010-03-16 3 views
18

BasicHTTPBinding 및 SSL을 사용하는 콘솔 응용 프로그램에 WCF 서비스가 배포되었습니다. 다음의 속성도 설정됩니다WCF 서비스 제한

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

내가 동시에 여러 클라이언트를 시작 나는 (부하 테스트) 테스트 클라이언트를 만든 반면에

<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647" 
     maxConcurrentInstances="2147483647" /> 

로 조절 동작을 설정 한 (다중 스레드)을 처리하고 서버에서 트랜잭션을 수행합니다. 모든게 잘 보이지만 서버에서 CPU 사용률이 증가하지 않아 서버로의 동시 호출 수를보기 위해 일부 로깅을 추가 했으므로 서버가 6을 넘지 않음을 알았습니다.

성능 카운터 로깅 코드를 자세히 검토했습니다. 두 번 이상 그것은 나에게 잘 보인다.

그래서이 상황에서 어디에 문제가 있는지 묻고 싶습니다. ContextMode 또는 ConcurrencyMode를 아직 지정하지 않았습니다.

이 포스트가 나올 때마다 테스트 클라이언트의 다른 Intance를 시작할 때마다 동시 서버 호출 카운터가 2로 증가한다는 것을 알게되었습니다. 단 1 인스턴스 만 실행하면 최대 동시 RCD 호출은 2가되고 두 ​​인스턴스가 동일한 경우 값은 4로 이동합니다. 한 번에 WCF 통화 수 제한이 있습니까? 에

******** 추가 17 월 ********

오늘은 동일한 시스템에서 (50 동시 사용자와) 하나의 테스트 클라이언트와 다른 테스트를 실행 한에 서버가 실행 중입니다. 이번에는 내가 원하는 정확한 결과를 얻고 있습니다 (즉, 최대 동시 호출 수는 서버 별 Rcvd = 50).

하지만 다른 사람들에게도 똑같이해야합니다. 아무도 이걸 도와 줄 수 없나요?

답변

18

해결책을 찾았습니다. ServicePointManager에이 문제를 일으키는 연결 제한이 있습니다. 그냥 기본 제한 2.

+4

의 한계? 이것은 클라이언트 또는 WCF 서비스 설정입니까? –

+1

늦게 답장을 보내서 죄송합니다. 모든 서버에 여러 개의 동시 아웃 바운드 연결을 만드는 .net 응용 프로그램으로 이동합니다. –

22

을 어디

System.Net.ServicePointManager.DefaultConnectionLimit = X; 

을 설정 또는 클라이언트에이 구성을 사용할 필요가이 제한을 제거합니다. 이 라인은 이동 않습니다 여기

<system.net> 
    <connectionManagement> 
     <add maxconnection = "200" address ="*" /> 
    </connectionManagement> 
    </system.net> 

(200)는 클라이언트 @JuliaS에서

+0

이것은 http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx에 설명되어 있으며 아마도이 사실을 알아야합니다. http://support.microsoft.com/kb/969189 –

+0

MSDN : [ 요소 (네트워크 설정)] (https://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx) –

+0

maxconnection = "100"address = "*"를 추가했지만 WCF에서 운행 시간 초과 오류가 발생하지 않았습니다. –