나는 가능한 통신 프레임 워크로 WCF를 사용하여, 클라이언트/서버 모델을 사용하여 풍부한 기능을 갖춘 응용 프로그램을 만들 찾고 있어요.WCF 클라이언트/서버 모델
(내가 netTcpBinding를 사용하는 거라고 WCF와 그래서) 내가 Windows 서비스에서 서비스 (들)을 개최한다.
지금, 나는 하나의 서비스 계약으로 모든 서비스 작업을 정의 할 수 있습니다 생각하지만, 거기에 꽤 많은 작업을 할 수 있고 차라리 여러 응집 서비스 계약을 나눌 것입니다.
내가 별도의 포트에 각 서비스를 호스팅해야합니다 의미하는 것이 서비스 계약의 집합으로 나의 작업을 분할시겠습니까? (나는 하나 개의 포트에서 실행하는 것을 선호 싶지만 그건 이상하지 않을 것입니다.)이 시나리오에 대한모든 디자인 팁? 감사합니다 :)
업데이트 혼란을
죄송합니다 - 단지 현명 그룹을에, 다른 계약의 각 모든 서비스 작업을 호스트 할 의도는 아니 었습니다. 내 문제는 한 포트에서 여러 ServiceHost를 호스팅 할 수 없다고 생각했기 때문입니다.
<는 이마>
조 단순히 하나 개의 포트에 여러 서비스 호스트를 호스트 할 수 있다고 때려. 나는 이것을 원래 시도 할 때 예외 메시지를 오해 했음에 틀림 없다고 생각합니다. 이 기능을 작동 시키면 내가 선호하는 해결책이 될 것이라고 생각합니다.
나는 하나의 구체적인 개체의 각 인터페이스를 구현하고 하나의 ServiceHost를에 호스팅의 @Koystya 공동의 접근 방식은 또한 내 질문에 좋은 실용적인 해결책이라고 생각합니다. 특히 그 단일 콘크리트 객체를 일종의 Facade로 취급한다면 말이죠. 제가 생각할 수있는 단점은 계약에 따라 다른 ServiceBehaviors를 가질 수 없다는 것입니다.
또한, 나는 그것이 하나 개의 구상 클래스에 여러 서비스 계약을 구현하기 위해 적절한 때의 조의 논리에 동의 않습니다.
감사합니다 조. 당신은 이렇게 말합니다. "전혀 그렇지 않습니다. 동일한 포트에서 여러 가지 서비스 계약을 체결 할 수 있습니다." 이것을 구현하기위한 나의 선택은 무엇입니까? (@ Koistya의 주장과는 별도로) – chardy
@Chris, 여러 개의 ServiceContract 인터페이스와 하나의 구체적인 구현체를 만들지 않으시겠습니까? (이 하나의 클래스를 여러 개의 부분 클래스로 나눠서 프로젝트 구조를보다 잘 조직 할 수 있습니다.) 그리고 나머지는 .config 파일에서 수행됩니다. –
프로세스 간을 공유하고 싶지 않다면 포트 공유에 특별한 방법이 없습니다. Net.Tcp 포트 공유). 나는 일반적으로 IIS에서 호스팅하여 메시지 기반 활성화 등의 이점을 얻습니다. 그러나 자체 호스팅을 사용하면 동일한 포트로 여러 ServiceHost를 생성 할 수 있습니다. – Joe