2011-09-18 4 views
6

나는 곧 70-513 시험을 보게됩니다. 쓰레기통에 내가 이해할 수없는 질문이 있습니다.WCF - IDuplexSessionRouter VS IRequestReplyRouter

WCF 서비스는 단방향 및 요청 - 응답 작업으로 계약을 구현합니다. 이 서비스는 TCP 전송을 통해 노출됩니다. 클라이언트는 라우터를 사용하여 서비스와 통신합니다.

대답은 IRequestReplyRouter 대신 IDuplexSessionRouter를 사용했다. IRequestReplyRouter를 사용할 수없는 이유를 알고 있습니까?

답변

3

그 질문이 MSDN 문서에서 설명합니다 : Building a router ("라우터 및 운송 세션"이 부분 확인)

1
라우팅 서비스 수신 메시지를 보내는 데 사용되는 채널의 모양을 정의하는 계약을 사용

하고, 그러므로 입력 채널의 모양은 출력 채널의 모양과 일치해야합니다.

요청 - 응답 채널 모양을 사용하는 엔드 포인트로의 라우팅을 수행하는 경우 IRequestReplyRouter와 같은 인바운드 엔드 포인트에서 호환 가능한 계약을 사용해야합니다.

즉, 대상 끝점에서 여러 통신 패턴 (예 : 단방향 및 양방향 작업 혼합)이있는 계약을 사용하는 경우 모든 메시지를 수신하고 라우팅 할 수있는 단일 서비스 끝점을 만들 수 없습니다. 해결 방법은 IDuplexSessionRouter와 같은 라우팅 서비스에서 이중 계약을 사용하는 것입니다.

참고 : 사본을 게시하고 여러 질문에 보일러/그대로 답변을 붙여 넣을 때

http://msdn.microsoft.com/en-us/magazine/cc546553.aspx

http://msdn.microsoft.com/en-us/library/ee517422.aspx

+2

주의, 이들은 지역 사회에 의해 "스팸"으로 플래그되는 경향이있다. 이 작업을 수행하는 경우 대개 질문이 중복되므로 대신 해당 질문에 플래그를 지정해야합니다. http://stackoverflow.com/questions/10911344 – Kev

관련 문제