문제

BasichttpBinding 및 SSL 활성화가있는 콘솔 앱에 WCF 서비스가 배포되었습니다. 다음 속성도 설정됩니다.

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

나는 또한 조절 행동을 설정했습니다

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

반면에 여러 클라이언트를 동시에 시작하고 서버에서 트랜잭션을 수행하는 테스트 클라이언트 (로드 테스트 용)를 만들었습니다. 모든 것이 괜찮은 것처럼 보이지만 서버에서는 CPU 사용률이 증가하지 않으므로 서버에 대한 동시 호출 수를보기 위해 일부 로깅을 추가했으며 6 명 이상이되지 않았다는 것을 알았습니다.

성능 카운터 로깅 코드를 두 번 이상 검토했으며 나에게는 괜찮은 것 같습니다.

이 상황에서 문제가 어디에 있는지 물어보고 싶습니까? 아직 어떤 종류의 컨텍스트 모드 나 동시 모드를 지정하지 않았습니다.

이 게시물 이후 테스트 클라이언트의 다른 Intance를 시작할 때마다 동시 서버 호출은 1 인스턴스 만 실행중인 경우 2로 카운터 늘인 2로 증가합니다. 최대 동시 RCVD 호출은 2가되고 동일한 인스턴스가있는 경우 동일한 값이 4로 이동합니다. 등등. 한 번 프로세스에서 WCF 호출 수의 한계가 있습니까?

******** 17 월 17 일에 추가 ********

오늘 저는 서버가 실행중인 동일한 컴퓨터에서 한 테스트 클라이언트 (동시 사용자 50 명)와 다른 테스트를 실행했습니다. 이번에는 내가 보여주고 싶은 정확한 결과를 얻고 있습니다 (즉, 서버 = 50으로 RCVD를 최대 동시 호출).

그러나 다른 기계에서도 마찬가지입니다. 아무도 이것에 대해 나를 도울 수 있습니까?

도움이 되었습니까?

해결책 2

솔루션을 찾았습니다.이 문제를 일으킨 ServicePointManager에는 연결 제한이 있습니다. 이 제한을 제거하려면 설정하면됩니다

System.Net.ServicePointManager.DefaultConnectionLimit = X;

기본 제한이 2 인 경우.

다른 팁

또는 클라이언트 에서이 구성을 사용하십시오.

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

여기서 200은 클라이언트의 한계입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top