我很快就要参加70-513考试了。题库中有一道我不理解的问题。
一个WCF服务实现了一个具有单向和请求-回复操作的协定。该服务在TCP传输上公开。客户端使用路由器与服务通信。
答案说要使用IDuplexSessionRouter而不是IRequestReplyRouter。请问为什么不能使用IRequestReplyRouter?
路由服务使用定义通道形状的契约来接收和发送消息,因此输入通道的形状必须与输出通道的形状相匹配。
因此,如果您将路由应用于使用请求-响应通道形状的端点,则必须在入站端点上使用兼容的契约,例如IRequestReplyRouter。
这意味着,如果您的目标端点使用具有多个通信模式的契约(例如混合单向和双向操作),则无法创建一个可以接收和路由所有这些端点的单个服务端点。解决方法是在Routing Service中使用双工契约,例如IDuplexSessionRouter。
参考资料: