《WCF按部就班学习系列5_WCF操作概述》

《WCF按部就班学习系列5_WCF操作概述》,本文的主要结构为:1)WCF操作的概述2)WCF请求-应答操作,单向操作,回调操作三种方式概述3)实现代码分析及运行结果4)源码下载5)下一篇计划6)参考说明

(1)WCF操作的概述(what)
1.1WCF支持这种经典的调用模式,同时还提供了对其他操作类型的内建支持,包括:对即发即弃( Fire-and-Forget)操作的单向调用;允许服务将调用返回给客户端的双向回调.允许客户端或服务处理大量负荷的流操作。总体而言,它所使用的操作类型属于服务契约的一部分,同时也是服务设计的内在组成部分。
1.2总体而言,它所使用的操作类型属于服务契约的一部分,同时也是服务设计的内在组成部分。操作类型甚至包含了对绑定的某些约束。因此,在设计客户端与服务时,必须从一开始就要考虑操作类型,因为我们很难在设计之后改变操作的类型.

(2)WCF请求-应答操作,单向操作,回调操作三种方式概述
2.1请求-应答操作
1.契约中的操作均为请求一应答( Request-Reply)类型。
2.客户端以消息形式发出请求,它会阻塞客户端直到收到应答消息。应答的默认超时值为1min.如果超过这一时间服务仍然没有应答.客户端就会获得一个TimeoutException异常。请求一应答是默认的操作模式。针对请求一应答操作的编程非常简单,它与经典的客户端,服务器编程模型相似。返回的应答消息包含了返回的结果,或者它会将返回值转换为一般方法的返回值。
3.这与经典的C/S编程类似,客户端发送请求,阻塞客户端进程,服务端返回操作结果。
4.除了NetPeerTcpBinding和NetMsmqBinding绑定,所有的绑定均支持请求-应答操作。

2.2单向操作
1.是操作没有返回值,客户端也不会关心调用成功与否。为支持这种即发即弃的调用方式,WCF提供了单向操作。
2.单向操作不同于异步操作,虽然单向操作只是在发出调用的瞬间阻塞客户端,但如果发出多个单向调用,WCF会将请求调用放入队列,并在某个时候执行。
3.队列存储调用的个数是有限的,一旦发出的调用个数超出了队列存储调用的设置值,则会发生阻塞现象,因为调用无法放入队列。当队列的请求出列后,产生阻塞的调用就会放入队列,并解除对客户端的阻塞。
4.所有的WCF绑定通信协议都支持单向操作。
5.由于单向操作没有应答消息,因此它不能包含返回值和返回结果。

2.3回调操作
1.回调不是一个新的概念,早在C语言里就有过,C#里更是有委托实现回调机制。
2.回调操作适用于各种场景与应用程序,尤其适用于事件,在服务端触发事件时使用回调操作通知客户端。
3.软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
4.回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础。
5.BasicHttpBinding,WSHttpBinding绑定协议不支持回调操作。NetTcpBinding和NetNamedPipeBinding绑定支持回调操作;具有可靠消息传输的WSDualHttpBinding绑定是通过设置两个HTTP信道来支持双向通信。
6.回调机制见图5-1回调机制图

(3)实现代码分析及运行结果
3.1WCFService(单向操作分析源码,回调操作见源码)

3.2WCFHost(宿主源码分析)

运行结果见图5-2启动服务器

3.3WCFClient(客户端源码分析)

运行结果见图5-3启动客户端

(4)源码下载
http://download.csdn.net/source/3022362

(5)下一篇计划
下一篇主要介绍WCF中错误处理的相关知识。
(6)参考说明
1.《Programming WCF Services》
2.http://www.cnblogs.com/frank_xl/archive/2009/05/05/1437494.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值