WCF之可靠性

  • 可靠性会话: 端到端(多个点到点系统组成)的可靠性,基于消息,基于WS-*,可以跨平台.


  • 在信道层创建可靠性会话,由两端的缓冲区进行可靠性管理(对消息进行排序后才发给服务器端,接收到消息后回发ACK.)跟TCP类似.当消息投递不成功时,会尝试重发(Meg2)可靠性消息实现了WS—RM,WS—RX的标准.

  • WS-RM消息过程: 创建序列号(标示消息在传递时的位置).由消息的发送方发送.只有头一次发送时.应答序列号创建成功. 由服务器的服务信道发送.实际传输中,对消息序列号的应答.ACK,由服务进行发送.其中,ACK在Http回应中返回,或者在TCP中以单独的消息返回.以下是调用阻塞时的情况.


  • 而当是One_way时一次操作的ACK只有被客户端代理接收到后,才会进行下一次操作请求.所以客户端其实是发送后要确保这一件事情的.对发送后不管的一点点修改.

  • WS-RM Policy断言: 可以包含在WSDL中,代理自动生成,可以不修改.对ACK进行设置.

  • 配置: 1) 对于大量数据的传递,如果使用流传输,则不能使用可靠性消息,无法创建大尺寸的缓冲区.2) 由客户端代理信道进行重试,不影响客户端逻辑,只有当所有的重试都失败,才会给客户端一个失败的消息.否则客户端不知道有重试着一个动作.3) SessionID通常是一个GUID(128位16进制字符串{01-05-ef-ab-…..})通过随机算法生成,以实现很好的并行性.可以同时给多个客户端分配SessionID且不重复.但是对于数据的查找会带来一些麻烦.4)会话超时: 由ReceiveTimeout和当是可靠性会话时的inactivityTimeout两者的最小者决定,但是如果是应用程序会话,使用前者,并且也推荐使用前者,因为它是通用的.5)异常处理: 异常本身不安全,其可能包含与安全有关的信息.其可能含有.NET中特有的类型.不能互操作.把异常包装成错误.然后发给客户端.

  • 什么时候使用: 服务有网络连接风险的;One-way;保证消息Order;在跨平台实现可靠性.

  • 问题: 投递失败的问题只会被传递到信道层,无法传输到客户端进行分析,所以无法知道那个消息失败了;会带来与会话创建销毁带来的开销;异常导致信道错误;容易超时.

WCF之可靠性

时间: 2024-11-04 17:40:24

WCF之可靠性的相关文章

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

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

重温WCF之WCF中可靠性会话(十四)

1.WCF中可靠性会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序.当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性.然而,它只在两点之间的网络包这个层面提供了这样的保证.WCF的可靠性会话特性保证了在传输过程中消息不会丢失.重复或错位.这种保证是消息层面的,而且适用于任何数目节点的通信.另外,使用可靠性会话时,WCF会重连掉线的连接,在重连失败时还会释放会话占用的相关资源.可靠性会话还会通过调整消息的发送频率来缓解网

WCF服务编程 读书笔记——第1章 WCF基础(2)

续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于HTTPGET的元数据,但需要显式地添加服务行为( Behavior)以支持这一功能.本书后面的章节会介绍行为的相关知识.现在,我们只需要知道行为属于服务的本地特性,例如是否需要基于HTTP-GET交换元数据, 就是一种服务行为.我们可以通过编程方式或管理方式添加行为.在例 1 - 10 演示的宿主应

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

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

我(webabcd)的文章索引

[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow 重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button,

WCF可靠性会话之服务分流

可靠性绘画答条件: (1)服务绑定支持可靠性绘画:特别是netTcpBinding.wsHttpBinding及wsDualHttpBinding. wsDualHtttpBinding可靠性绘画始终都是可用的,不须要配置,然上面的其他两种须配置,以wsHttpBinding为例,配置如下: <wsHttpBinding> <binding  name="mybinding" > <reliablesession   enabled="true&

WCF 绑定(Binding)

作者:jiankunking 出处:http://blog.csdn.net/jiankunking 绑定包括多个绑定元素 ,它 们描写叙述了全部绑定要求 .能够创建自己定义绑定 ,也能够使用下表中的当中一个提前定义绑定 : 不同的绑定支持不同的功能.以Ws开头的绑定独立于平台 ,支持 Web服务规范. 以 Net开 头的绑定使用二进制格式,使Net应用程序之间的通信有非常高的性能. 其它功能支持会话.可靠的会话.事务和双工通信. 下表列出了支持这些功能的绑定 . Binding 绑定可指定在与

WCF服务二:创建一个简单的WCF服务程序

在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WCFSolution". 2.解决方案右键->添加->类库项目,类库名称为CalculateWcfService. 3.创建服务契约 WCF采用基于契约的交互方式实现了服务的自制.服务契约:是相关操作的集合.契约就是双方或多方就某个关注点达成的一种共识,是一方向另一方的一种承诺.签署了某个

WCF概念

WCF 概念 WCF是.NET Framework 上灵活通讯技术.在.NET 3.0推出之前,一个企业解决方案需要几种通讯方式.对于独立于平台的通讯,使用ASP.NET Web服务.对于比较高级的 Web 服务-可靠性.独立于平台的安全性和原子事务等技术-Web Service Enhancements 增加了ASP.NET Web 服务的复杂性.如果要求通讯比较快,客户和服务都是.NET 应用程序,就应使用.NET Remoting 技术. .NET Enterprise Services