2012-04-17 2 views
0

제 생각에는 2 개의 WCF 서비스를 호스팅 할 Windows 서비스가 있어야합니다.2 개 서비스가있는 WCF 호스트 - 몇 가지 질문

WCF 서비스은 데이터베이스에 액세스하고 CRUD 작업을 수행하려는 클라이언트를위한 것입니다. 'GetProducts'및 'AddProduct'와 같은 작업이 노출됩니다.

WCF 서비스 B는 서비스에 연결하는 WPF '관리'콘솔을위한 것, 그리고WCF 서비스에 연결되는 클라이언트 응용 프로그램을 볼 수 있습니다, 또한이 작업 노출 될 수 클라이언트를 서비스에서 연결 해제하고 클라이언트가 수행 한 작업을 보는 데 사용됩니다.

내 질문은 : WCF 서비스 및 A에 연결된 클라이언트 목록을 유지하기 위해

질문 1) - 나는 서비스 A의 인스턴스에서와 목록의 어떤 종류를 필요로 아마 것 클라이언트의 이름 (각 클라이언트는 고유 한 이름을 갖습니다). 즉, 'Single Instance'모드를 사용하여 WCF 서비스 A을 작성해야합니다 (그렇지 않으면 각 클라이언트는 하나의 클라이언트 만 가진 클라이언트 목록으로 서비스의 자체 인스턴스를 생성합니다). 또는 모든 인스턴스가 사용하는WCF 서비스 이외의 일부 정적 클래스의 클라이언트 목록을 넣어 더 나은 방법입니다 (아마도 잠금을 사용하고 계십니까?)

질문 2) 어떤 스마트 방법이 있나요 일부 '매니저'컨테이너에서 두 서비스를 모두 설계하고 있습니까?

감사합니다.

답변

0

두 계약 (표준 및 관리자)에 대해 두 개의 엔드 포인트가있는 단일 서비스를 사용할 수 있습니다. 두 개의 엔드 포인트에 다른 보안을 적용 할 수 있습니다.

현재 연결되어있는 사용자의 목록을 싱글 톤으로 유지하면 InstanceContextMode를 사용하지 않고도 끝점에서 업데이트하고 읽을 수 있습니다. 싱글 톤을 조작하려고 시도하는 스레드가 여러 개일 가능성이 높으므로 액세스 할 때 스레드 동기화를 사용해야합니다.

+0

대단히 감사합니다! –