双工系统WCF如何区分不同的通道实例?

时间:2010-10-27 18:34:27

标签: wcf

嗯,我完全失去了所以任何帮助都会受到赞赏

  

在   OperationContext.Current.InstanceContext   是当前服务的上下文   传入通道的实例   使用

     

在双工系统中,服务可以   通过a回调客户端   CallbackContract。这个   CallbackContract就像一个   在客户端的服务是   听取服务电话   在客户端拥有的频道上   打开。这个“客户端回调   服务“只能通过   它在服务上使用的相同频道   因此只有那项服务   访问它。

a)因此,在双工系统中,客户端也使用与客户端向服务发送消息的相同通道实例来接收来自服务的消息?

b)如果在请求 - 回复系统中,客户端使用特定的通道实例clientChannel向服务发送消息,那么我假设同一个实例(因此clientChannel)需要保持打开直到服务发送回此实例的回复,而双工系统clientChannel需要保持打开直到会话结束?

c)我假设这样的行为,因为据我所知,每个频道实例都有一个唯一的地址(或ID),有助于区分它与同一客户端上运行的其他频道实例?当服务发回消息时,它还指定了该频道的ID?

因此,当双工系统客户端调用服务时,WCF(在客户端)创建一个通过线路发送消息的通道实例clientChannel。在服务器端,WCF创建通道实例serverChannel,它将消息传递给请求的操作(方法)。当此方法想要通过CallbackContract回调客户端时,它使用InstanceContext.GetCallBackChannel<>创建一个通道,其中包含调用服务的通道的ID(因此它包含一个确切的地址或ID为clientChannel)?

d)双工系统客户端是否使用相同的通道实例来调用任何端点的操作?

谢谢

0 个答案:

没有答案