《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
分享到:
相关推荐
让我们深入探讨一下“WCF按部就班学习系列7:WCF事务概述”中的核心知识点。 1. **WCF事务属性**:在WCF服务中,可以通过配置或编程方式启用事务。服务行为`ServiceBehavior`可以设置`TransactionEnabled`属性为`...
**限流概述**是WCF并发管理中的另一个重要概念。限流是控制服务处理速率的一种机制,可以防止过多的并发请求导致系统资源耗尽。WCF通过设置服务的行为配置,可以限制并发请求数、最大接收消息数等,以达到服务级别的...
在“WCF按部就班学习系列1”中,我们将深入探讨WCF的基础知识,包括服务契约、宿主定义等关键概念。 **服务契约** 服务契约是WCF中的核心概念,它定义了服务提供的操作及其交互方式。服务契约通过接口(Interface...
WCF实例管理的概述,WCF服务实例激活类型三种方式概述和单例服务的完整代码。
**WCF错误概述** Windows Communication Foundation (WCF) 是微软提供的一个全面的、统一的编程模型,用于构建面向服务的应用程序。在WCF中,错误处理是不可或缺的一部分,确保服务的稳定性和可靠性。本篇文章将...
学习这个系列,初学者可以理解WCF的基本架构,掌握如何定义和使用数据契约,创建服务契约,以及如何在不同的环境中(如IIS、自承载等)部署和运行WCF服务。同时,通过实际的代码示例,有助于深入理解和应用WCF技术。
在WCF中,服务契约可以支持方法重载,但需要注意的是,由于SOAP消息是基于XML的,而XML不支持同名元素的不同签名,因此WCF中的方法重载不是基于参数类型或数量,而是基于操作名称。这意味着在服务契约中,两个方法不...