WCF分布式开发步步为赢(10)

请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)

WCF除了支持经典的请求应答(Request-Reply)模式外,还提供了什么操作调用模式,他们有什么不同以及我们如何在开发中使用这些操作调用模式。今天本节文章里会详细介绍。WCF分布式开发步步为赢(10):请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back).本文结构:【1】请求应答(Request-Reply)、【2】单向操作(One-Way)、【3】回调操作(Call Back)、【4】示例代码分析、【5】总结。最后上传本文的示例代码。

WCF除了支持经典的请求/应答模式意外,还提供了对单向操作、双向回调操作模式的支持,此外还有流操作(后者与WSE3.0提供的优化传输机制类似,我曾经在这个文章里进行过讲解WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载)。今天我们会介绍几种操作调用模式的概念,区别,实现机制,以及如何在代码中实现他们,最后给出的要注意的细节问题。

【1】请求应答(Request-Reply):

请求应答模式是默认的操作模式。这与经典的C/S编程类似,客户端发送请求,阻塞客户端进程,服务端返回操作结果。请求应答模式与绑定对应关系 :

除了NetPeerTcpBinding和NetMsmqBinding绑定,所有的绑定均支持请求-应答操作。

【2】单向操作(One-Way):

【2.1】概念:

简单来说,单向操作没有返回值,客户端只管调用,不管结果。单向操作客户端一旦发出请求,WCF会生成一个请求,不会给客户端返回任何消息。单向操作不同于异步操作,虽然单向操作只是在发出调用的瞬间阻塞客户端,但如果发出多个单向调用,WCF会将请求调用放入队列,并在某个时候执行。队列存储调用的个数是有限的,一旦发出的调用个数超出了队列存储调用的设置值,则会发生阻塞现象,因为调用无法放入队列。当队列的请求出列后,产生阻塞的调用就会放入队列,并解除对客户端的阻塞。绑定协议与单向请求模式关系:

和请求应答模式不同。所有的WCF绑定通信协议都支持单向操作。

时间: 2024-10-20 07:56:37

WCF分布式开发步步为赢(10)的相关文章

WCF分布式开发步步为赢

WCF分布式开发步步为赢(15) WCF分布式开发步步为赢(14):WCF安全编程--基本概念 WCF分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式 WCF分布式开发步步为赢(11):WCF流处理(Streaming)机制 WCF分布式开发步步为赢(10) WCF分布式开发步步为赢(9):WCF服务实例激活类型编程与开发 WCF分布式开发步步为赢(8) WCF分布式开发步步为赢(7):WCF数据

WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程

今天我们继续学习WCF分布式开发步步为赢系列的12节:WCF事务机制(Transaction)和分布式事务编程.众所周知,应用系统开发过程中,事务是一个重要的概念.它是保证数据与服务可靠性的重要机制.作为面向服务应用的开发平台,WCF也提供了对事物编程模型的支持..NET 2.0提供的System.Transactions类来开发事务应用程序.同样WCF也支持事务特性,WCF事务机制是什么,它与微软已有的技术如Microsoft 分布式事务协调器 (MSDTC)有何关系?与Enterpise S

WCF分布式开发步步为赢(11):WCF流处理(Streaming)机制

WSE3.0框架提供了数据优化传输机制,WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传.下载疑问里进行了介绍.WCF同样也提供了流操作来支持大数据对象的传输和处理优化机制,今天我们WCF分布式开发步步为赢系列的(4):使用流操作(Streaming Operations)优化传输.本节会详细介绍流操作的相关概念.编程实现过程,以及实际开发过程中需要主要的一些问题.本节结构:[1]流处理的概念[2]流处理的特点[3]示例代码分析[4]总结.最后上传本文的示例代码. Strea

WCF分布式开发步步为赢(8)

使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据 数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NET的一部分.今天我们WCF分布式开发步步为赢第8节的内容:使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据.本节内容除了介绍几个类型概念外的,同样会详细给

WCF分布式开发步步为赢(7):WCF数据契约与序列化

本节继续学习WCF分布式开发步步为赢(7):WCF数据契约与序列化.数据契约是WCF应用程序开发中一个重要的概念,毫无疑问实现客户端与服务端数据契约的传递中序列化是非常重要的步骤.那么序列化是什么?为什么会有序列化机制?或者说它是为了解决什么问题?作用是什么?现有的.NET 序列化机制和WCF序列化机制有什么不同?我们在本节文章里都会详细介绍.本节结构:[0]数据契约[1]序列化基本概念[2].NET 序列化机制[3]WCF序列化机制[4]代码实现与分析[5]总结. 下面我们正式进入今天的学习阶

WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计

上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依据?面向对象的设计经验有何值得借鉴的地方?这里我们会一一给出详细的介绍.本文首先介绍的是WCF服务中契约继承的一些概念.例子代码分析,其次来讲解服务契约的设计问题.首先介绍的也是进行服务设计的必要性,服务设计的原则,示例代码分析.最后是全文的总结部分.结构如下:[1]OO面向对象设计原则,[2]服务

WCF分布式开发步步为赢(5)服务契约与操作重载

继上一节WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发,本节我们继续学习WCF分布式开发步步为赢的第(5)节:服务契约与操作重载.这里我们首先讲解OOP面向对象的编程中方法重载,重载的意义,WCF服务编程开发如何实现操作重载,随后是代码分析部分,给出了服务端服务契约定义和实现操作重载的注意的问题和实现过程,然后详细介绍了客户端实现操作重载的方式.最后是本文的总结部分.本节的结构是:[1]重载概念[2]操作重载[3]代码实现分析[4]运行结果[5]总结 [1]重载概念: [1.

WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发

今天继续WCF分布式开发步步为赢系列的第4节:WCF服务可靠性传输配置与编程开发.这个章节,我们要介绍什么是WCF服务的可靠性传输,随便介绍网络协议的概念,Web Service为什么不支持可靠性传出,具体的WCF绑定协议和可靠性的关系,实现可靠性传输有什么方式,以及配置和开发的详细实现代码分析部分.[1]可靠性传输[2]配置方式实现可靠性传输[3]编程方式实现可靠性传输[4]编程实现必备有序传递[5]结果分析和总结. 下面进入正式的内容: [1]可靠性传输: [1.0]网络协议基础知识: 这里

WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发

今天我们继续WCF分布式开发步步为赢(3)WCF服务元数据交换.配置及编程开发的学习.经过前面两节的学习,我们了解WCF分布式开发的相关的基本的概念和自定义宿主托管服务的完整的开发和配置过程.今天我们来详细学习WCF服务元数据交换的相关内容.WCF服务元数据究竟是什么?为什么WCF服务要暴露元数据交换节点?这些和以前的Web Service有什么关系?WCF服务元数据交换的方式有那些?我们如何实现WCF服务元数据交换,本节我们会详细讲解.全文结构如下:[1]WCF服务元数据的基本概念.[2]WC