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之可靠性的更多相关文章
- 重温WCF之WCF中可靠性会话(十四)
1.WCF中可靠性会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序.当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性.然而 ...
- WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发
今天继续WCF分布式开发步步为赢系列的第4节:WCF服务可靠性传输配置与编程开发.这个章节,我们要介绍什么是WCF服务的可靠性传输,随便介绍网络协议的概念,Web Service为什么不支持可靠性传出 ...
- WCF分布式开发步步为赢(5)服务契约与操作重载
继上一节WCF分布式开发步步为赢系列的(4):WCF服务可靠性传输配置与编程开发,本节我们继续学习WCF分布式开发步步为赢的第(5)节:服务契约与操作重载.这里我们首先讲解OOP面向对象的编程中方法重 ...
- WCF服务编程 读书笔记——第1章 WCF基础(2)
续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...
- 我(webabcd)的文章索引
[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...
- WCF可靠性会话之服务分流
可靠性绘画答条件: (1)服务绑定支持可靠性绘画:特别是netTcpBinding.wsHttpBinding及wsDualHttpBinding. wsDualHtttpBinding可靠性绘画始终 ...
- WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】
http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...
- WCF 服务编程 - 常用绑定
WCF 定义了5中常用的绑定. 一. 绑定 1.基本绑定: 对应于BasicHttpBinding类.基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得原客户端能够与新的服务协作.如果客 ...
- WCF入门教程(五)配置文件
WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...
随机推荐
- Objective-C的对象模型和runtime机制
内容列表 对象模型(结构定义,类对象.元类和实例对象的关系) 消息传递和转发机制 runtime系统功能理解 对象模型 结构定义 对象(Object): OC中基本构造单元 (building blo ...
- Android微信SDK API 调用教程【转】
原文:http://blog.csdn.net/worker90/article/details/8211451 最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官 ...
- android Activity的杂乱总结
android中Activity可以说是四大组件中用的最为广泛,也是最为基本的一个组件.几乎和用户的所有交互都需要通过Activity来实现. 最近在学习过程中,有一些关于Activity的内容,让我 ...
- oc-23-static
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * ...
- careercup-高等难度 18.7
18.7 给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成. 解法: 原题 给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词.例如,字段为{hell ...
- 【ZZ】快速學會開發Android App
http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2209.html 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機 ...
- 解决ajax.net 1.0中文乱码问题!
在使用ajax.net的UpdatePanel的时候,当requestEncoding编码为GB2312的时候,出现乱码.如果要解决这个问题最简单的就是改用utf-8了,但是原来使用GB2312, ...
- 项目源码--JAVA基于LBS地理位置信息应用的服务端
技术要点: 1. LBS应用框架服务端实现 2. JAVA服务端技术 3. MYSQL数据库技术 4. 源码带详细的中文注释 ...... 详细介绍: 1. LBS应用框架服务端实现 此套源码是基 ...
- FOR XML PATH 解决联接返回结果集各记录问题
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
- EF——继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子 05 (转)
EF里的继承映射关系TPH.TPT和TPC的讲解以及一些具体的例子 本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF ...