wcf中的数据报信道与会话信道

本文深入探讨了WCF中的两种通信模式:会话信道和数据报信道。会话信道为每个客户端提供独立的服务信道,以维持客户端的状态信息;而数据报信道则允许多个客户端共享同一信道,不保留状态信息。文章还介绍了服务寄宿时如何创建和管理这些信道。

理解数据报信道和会话信道,就得了解会话的含义。wcf中的会话指通信参与者之间共享的上下文,也就是客户端和服务端之间共享的一些状态信息。换句话说,服务端具有某种能力,能够区分不同的客户端,并为不同的客户端保持状态。延伸到会话信道,一个会话信道将与一个客户端进行绑定,只能为一个客户端进行服务。但是数据报信道却没有这个限制,因为数据报信道不需要在客户端和服务端之间保持状态,这样的话不同的客户端可以共享相同的信道和服务端进行通信。
服务寄宿时,会创建若干个终结点,还可以为终结点指定监听地址,没有显式指定监听地址的终结点,会使用逻辑地址作为监听地址。对于每一个不同的监听地址,wcf都会创建一个信道监听器。基于数据报信道的监听中,监听开始的同时,监听信道就会被创建出来,一旦监听到消息请求,不管请求来自于哪个客户端,信道监听器都会使用创建好的信道对请求消息进行接收和处理。而在基于会话信道的监听中,监听开始时并不会创建监听信道,而是在成功监听到请求时,才会创建与客户端相对应的会话信道,每一个客户端独占地使用一个服务端信道。对于某个客户端的第一次请求,wcf会创建信道接收和处理请求,后续的来自于这个客户端的请求将使用同一个信道进行处理。因为不同的客户端使用不同的会话信道,所以服务端必须限制会话信道的数量,避免服务端资源的过度使用,导致后续的请求无法处理。所以wcf具有最大并发会话数量的限制。
在使用会话信道时,客户端在服务调用后需要及时关闭会话信道,以免影响其他客户端的正常使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值