2013-08-05 3 views
0

우리는 클라이언트 서버 응용 프로그램이 있습니다. 데이터베이스에 데이터를 수신/전송하기 위해 WCF 서비스를 통해 작동하도록 애플리케이션을 변경해야합니다 (보안 요구 사항).Windows 서비스와 호스팅 된 WCF 서비스

클라이언트 측에서 호스팅되는 다른 서비스가 필요하며 클라이언트를 서버 측의 WCF 서비스에 연결해야합니다. Https으로 연결하십시오. 서버의 WCF 서비스는 PerSession 모드입니다. 서버를 사용한 대부분의 작업은 삽입/선택 쿼리입니다.

그래서 내 디자인은 다음과 같습니다

클라이언트 -> Windows 서비스 -> WCF 서버 서비스 (IIS7) -> 데이터베이스.

이 Windows 서비스는 동시에 클라이언트와 서버의 역할을합니다. 서버로 작동 : 클라이언트 응용 프로그램 용. 서버에있는 WCF 서비스의 클라이언트 역할을 수행합니다.

응용 프로그램은 .NET Windows 서비스가 (클라이언트 응용 프로그램이 실행) 수요 만에 WCF 서비스를 연결해야합니다 4.

와 XP 앞으로 운영 체제를 지원해야합니다.

클라이언트 Windows 서비스를 구현하는 방법을 결정해야합니다. TCP/IP과 함께 WCF 호스팅 서비스를 구현하는 것이 더 좋지만 그렇게하려면 과도하게 사용하는 것처럼 느껴집니다. 다른 IPC 구현을 사용해야합니까? 그리고 만약 그렇다면 어느 것입니까?

그래서이 Windows 서비스를 구현하는 가장 좋은 방법은 무엇입니까?

감사

답변

1

Windows 서비스는 WCF 서비스와 통신하기 위해 클라이언트 측에서 사용되어야하는 이유 완전히 점을 이해하지 않습니다. 하지만 문제는 아키텍처 패턴에 관한 것이 아니 었습니다 ...

따라서 프로세스 간 통신의 경우 NetNamedPipeBinding을 사용합니다. here을 사용할 바인딩을 결정하는 방법에 대한 자세한 정보를 찾을 수 있습니다.

프로세스 간 통신을 위해 WCF 서비스를 사용한다고해도 과도한 부담은 느끼지 않습니다. 사실 WCF 서비스는 호스트 초기화 프로세스를 제외하고는 매우 가볍습니다. Windows 서비스의 경우 자주 발생하지 않아야합니다. WCF는이 작은 불편 함을 대신하여 안정성과 확장 성을 제공합니다.

[EDITED]

난 그냥 당신이 게시 다시 읽고, 나는 호스팅에 대한 몇 가지 세부 사항을 명확히하고 싶습니다. here으로 설명 된 Windows 서비스에서 WCF 서비스를 호스팅 할 수는 있지만 다른 방법은 아닙니다. 죄송합니다. 귀하의 질문에 대해 오해 한 경우. 그리고 네, 프로세스 간 통신을위한 TCP/IP는 확실히 과잉이지만 NetNamedPipeBinding은 this 문서에 따라 공유 메모리를 사용하므로 가장 빠른 방법이어야합니다.

관련 문제