2013-04-23 2 views
1

Azure 서비스 버스 중계를 수신하는 WCF 서비스가 있습니다. 이유는 변경할 수 없기 때문에 Windows 서비스에서 자체 호스팅입니다. 일반적으로 그것을 장기간 실행되는 일련의 요청을 제공함으로써 - - 서비스 동시 부하가 투입되면WCF 동시 연결 및 Azure 서비스 버스 릴레이

우리는 푸른 서비스 버스에서 다시 다음과 같은 메시지를 수신하기 시작 :

<Error> 
<Code>502</Code> 
<Detail>Bad Gateway.TrackingId:f0e32d08-2721-464c-a108-fe63f1efc443_G23,TimeStamp:4/23/2013 8:22:18 AM</Detail> 
</Error> 

우리는 동시 부하의 원인을 의심 이 문제.

내 서비스는 완전히 무국적입니다.

  1. 위의 오류가 동시 부하 문제처럼 보이는가 :

    ServiceHost = a WebServiceHost which we instantiate ourselves. 
    Binding = BasicHttpRelayBinding 
    InstanceContextMode = Single 
    ConcurrencyMode = Multiple 
    SessionMode = NotAllowed 
    ServiceThrottlingBehaviour.MaxConcurrentConnections = A very large number 
    Transport = Streaming 
    

    내가 네 가지 질문이?

  2. 큰 규모를 제공하려면 다른 구성 옵션을 고려해야합니다.
  3. 자체 호스팅 Window Service 환경에서 동시 연결 제한에 도달하면 어떻게됩니까? 서비스가 실패할까요? 연결이 대기열에 있습니까?
  4. 주어진 순간에 동시 연결 수를 안정적으로 모니터링 할 수있는 방법이 있습니까?

답변

3

저는 직원이 입니다. Azure 서비스 버스 계전기입니다.

방금 ​​문제를 추적하기 위해 쿼리를 실행했습니다. (난 당신이 사용 된 네임 스페이스를 알고 원하는 경우 나중에 참조 할 수 있도록 , 훨씬 더 쉬웠을 것입니다.)

502 요청이있을 때 서비스 버스에 연결로 ServiceHost를 리스너이 감지되지 않았 음을 표시 시도했다.

이것을 디버그하는 가장 쉬운 방법은 ConnectionStatusBehavior을 엔드 포인트에 연결하고 이벤트를 ServiceHost에 연결하는 것입니다.

또한 서비스 버스 내의 특정 VM이 짧은 시간 동안 오프라인 상태가 될 수 있습니다. 이 경우 ~ 012 초 동안 사용자의 ServiceHost이 오프라인 일 수 있습니다. 이를 피하는 가장 좋은 방법은 호스트 (2) ServiceHosts을 별도의 프로세스/AppDomains에 항상 배치하여 모든 단일 VM 중단이 서비스에 영향을 미치지 않도록하는 것입니다. (웹 사이트 호스팅 권장 사항과 매우 비슷합니다.)

이러한 권장 사항을 따른 후에 예기치 않은 문제가 발생하면 저희에게 직접 문의하여 조사 할 수 있도록 [email protected]으로 연락하십시오.

+0

안녕하세요, 토드, 답장을 보내 주셔서 감사합니다. 우리는 ConnectionStatusBehaviour를 사용하여 연결을 진단했으며이 시간 동안 연결 이벤트를 모니터링하지 않았습니다. 현재 호주에서의 공휴일이지만, 일하면서 다시 일할 때 당신을 당신의 제안으로 데려다 줄 것입니다. 다시 한번 감사드립니다. –

관련 문제