2010-02-24 3 views
0

서로 다른 유형 임에도 불구하고 모두 서로 통신하는 여러 WCF 서비스로 솔루션을 개발 중입니다. 서비스는 ChannelFactory 제네릭 인터페이스를 통해 서로 연결되며 모든 서비스는 ServiceHost 내에서 호스팅됩니다.WCF 콜백 계약과 서버 간 서버

제 질문은 서버간에 콜백 계약을 사용하여 서로 통신하는 것이 올바른지, 그렇다면 어떻게 그런 해결책을 제시 할 것인가입니다.

현재 모든 서비스는 다른 서비스를위한 일부 인터페이스와 다른 클라이언트 용 인터페이스를 가진 몇 개의 엔드 포인트를 호스트해야하기 때문에 구현이 마음에 들지 않습니다.

ServiceHost에서 호스트 된 서비스 클래스 내에 콜백 계약을 구현하려고 시도했지만 실패했습니다.

답변

0

우선, "실패했습니다"라는 질문을 게시 할 때마다 어떤 방식으로 실패했는지 알려줄 필요가 있습니다. 예외가있는 경우 ex.ToString()의 결과를 게시하여 모든 InnerException 인스턴스를 포함하여 전체 예외를 게시해야합니다.

문제는 다른 서비스와 통신해야하는 각 서비스의 일부를 나타내는 서비스 계약을 구현하는 것입니다. 이 서비스 계약과 관련된 콜백 계약도 있습니다.

그런 식으로 각 서비스가 서비스 간 통신만을위한 소형 서비스를 운영하는 것처럼 보입니다. 그러면 각자는 서비스간에 전달되는 정보로 각각 자신의 일을 처리 할 수 ​​있습니다.

+0

언급 한 경우 모든 서비스가 서비스 호스트의 인터페이스를 호스팅한다고 가정 해보십시오. 다른 프로세스가 콜백을 연결하는 위치는 어디입니까? ISomeMessage는 ServiceHost를 통해 SomeMessageService에 의해 호스팅 될 것입니다. IServiceMesssageCallback을 구현하는 것은 무엇입니까? Btw 메신저 생성 된 프록시 사용을 피합니다. – totem

+0

동일한 서비스 클래스에서 콜백을 구현할 수없는 이유는 없습니다. 또한 각 서비스에는 고유 한 서비스 계약 구현이있을 수 있습니다. –