나는 IIS를 사용하는 대신 내 WCF 서비스를 자체 호스팅 할 생각이다. 나에겐 커다란 질문은 IIS처럼 여러 개의 서비스 호스트를 인스턴스화해야하는지 아니면 하나만 있으면 충분할 것인가이다.여러 서비스 호스트의 이점은 무엇입니까? 한 ServiceHost가 한 끝점에서 여러 개의 동시 연결을 지원합니까?
보안상의 이유로 격리를 제외하고는 많은 이점이 있습니까?
한 서비스 호스트가 한 끝점에서 동시에 여러 연결을 제공 할 수 있습니까?
나는 IIS를 사용하는 대신 내 WCF 서비스를 자체 호스팅 할 생각이다. 나에겐 커다란 질문은 IIS처럼 여러 개의 서비스 호스트를 인스턴스화해야하는지 아니면 하나만 있으면 충분할 것인가이다.여러 서비스 호스트의 이점은 무엇입니까? 한 ServiceHost가 한 끝점에서 여러 개의 동시 연결을 지원합니까?
보안상의 이유로 격리를 제외하고는 많은 이점이 있습니까?
한 서비스 호스트가 한 끝점에서 동시에 여러 연결을 제공 할 수 있습니까?
ServiceHost
(해당 클래스의 인스턴스)은 정확히 하나의 서비스를 호스팅 할 수있는 이점이나 선택 사항이 없으며 각 서비스에 대해 별도의 서비스 호스트가 필요합니다. 1 : 1 매핑입니다. 항상 선택의 여지가 없습니다.
물론 Windows NT 서비스 또는 콘솔 응용 프로그램은 여러 개의 ServiceHost
개체를 동시에 활성화 할 수 있습니다. 논리적으로 함께 속하고 실제로 존재할 수없는 일련의 서비스가있는 경우 유용 할 수 있습니다. 서비스 중 하나를 시작하고 다른 하나를 시작하지 않는 것이 의미가없는 경우 유용 할 수 있습니다.
예, 서비스 호스트는 여러 엔드 포인트를 제공하는 서비스를 호스트 할 수 있으며 여러 클라이언트가 동시에 이러한 개별 엔드 포인트에 연결할 수 있습니다. WCF 런타임은 들어오는 요청 (ServiceThrottling 동작이있는 요청을 개별적으로 제한 할 수 있음)을 처리하기 위해 여러 개의 작업자 스레드를 서로 독립적으로 사용합니다.
는 설정하려면 및 제어, 당신은 얼마나 많은 동시 통화 및 요청, 서버 측의 ServiceThrottling 행동을보고해야합니다.
<behaviors>
<serviceBehaviors>
<behavior name="serviceThrottled">
<serviceThrottling
maxConcurrentCalls="16"
maxConcurrentInstances="26"
maxConcurrentSessions="10"/>
</behavior>
</serviceBehaviors>
</behaviors>
는 당신은 물론, 서비스 선언에서 해당 서비스의 동작 구성을 참조 할 필요가 :
<service name="YourService" behaviorConfiguration="serviceThrottled">
.....
</service>
이 기본 값입니다. 그 설명은 (단축 댄 릭스의 블로그 게시물에서 찍은)은 다음과 같다 :
MaxConcurrentCalls (기본값 = 16) 메시지 당] 적극적으로 처리 될 수있는 메시지의 최대 수.
MaxConcurrentInstances (기본값 = 26) 한 번에 실행할 수있는 서비스의 최대 InstanceContext 개체 수입니다. 세션 별 서비스의 경우이 값은 최대 통화 수, 즉 통화 별 서비스 수와 같으며 최대 동시 통화 수이며 싱글 톤의 경우 무의미합니다.
MaxConcurrentSessions (기본값 = 10) [서비스 별 채널] 한 번에 서비스에서 허용 할 수있는 최대 세션 수입니다. 만 확실히 또한 주제에 Dan Rigsby's excellent blog post을 확인 세션 기반 바인딩 (wsHttp 또는 netTcp)
로 활동하기 시작.
아니요, 관심있는 상황은 하나의 엔드 포인트로 하나의 논리 서비스가있는 경우이지만 여러 클라이언트의 서비스에 여러 개의 동시 연결이 필요합니다 (단, 한 가지 유형의 엔드 포인트 사용). – flashnik
@flashnik : 그건 분명 문제 없습니다.기본적으로 서비스에 어떤 종단점이 있더라도 10-16 회의 동시 호출이 가능합니다. –
이 금액을 어떻게 다르게 설명 할 수 있습니까? – flashnik