WCF系列_WCF如何选择不同的绑定
内容转载自《WCF核心技术》
开发者不用直接操作信道范型,而是由WCF根据服务OperationContract来选择合适的信道范型。大多数信道范型都有无会话两种变体。有会话信道会在客户端和服务器端传递一个标识,这样就可以保持客户端和服务器之间的状态信息。这种方式和ASP.NET进行状态管理的方法类似。WCF虽然没有内置的状态管理功能,但是如果使用会话状态,就可以管理状态了。
在WCF中,信道监听器构成了服务器通信的基础。它们负责监听传入的消息,创建信道栈,并为应用程序提供对栈顶的引用。它们从传输信道或其他位于信道栈底层的信道接收消息。大多数开发者不会直接使用信道监听器。而是使用ServiceHost的类来托管服务,这个类会使用一个信道监听器来监听消息。
信道栈是由一个或多个处理消息的信道组成的多层次通信栈。绑定就是预先配置好的信道栈,它代表了客户端和服务器端之间线路级别上的约定。每个绑定都会制定通信所用的传输,编码以及协议。通过绑定,WCF封装了各种不同的通信场景下所使用的配置。
WCF共有9种预先定义好的绑定,每种绑定都对一种特定的分布计算需求提供了手段。要确定应该为特定应用程序选择哪种绑定,有多种因素需要考虑,包括安全性,互通性,可靠性,性能及事务要求。
每种绑定都支持一个特定的通信场景,如跨机,本机或者使用WebService做互操作通信。在检查绑定之外,用户也需要考察这些场景。还有其他一些场景,如统一安全认证与对等通信等。
名词解释:
互操作性:就软件而言,互操作性——这条术语用来描述的是不同的程序(programs)借助于同一套交换格式(exchange formats)来交换数据,读写相同文件格式(file formats)以及采用相同协议(protocols)的能力。
WCF系列_WCF如何选择不同的绑定的更多相关文章
- WCF系列_WCF常用绑定选择
一.五种常用绑定常用绑定的传输协议以及编码格式 名称 传输协议 编码格式 互操作性 BasicHttpBinding HTTP/HTTPS Text,MTOM Yes NetTcpBinding TC ...
- WCF系列_WCF影响客户端导出Excel文件的实现
需求:WCF搭建服务端提供导出并下载Excel文件接口,客户端使用ajax发起请求,浏览器直接下载Excel文件. 难点:WCF中并没有HttpContext对象,因此,服务端总是获取不到HttpCo ...
- WCF系列教程之WCF服务配置工具
本文参考自http://www.cnblogs.com/wangweimutou/p/4367905.html Visual studio 针对服务配置提供了一个可视化的配置界面(Microsoft ...
- 跟我一起学WCF(13)——WCF系列总结
引言 WCF是微软为了实现SOA的框架,它是对微乳之前多种分布式技术的继承和扩展,这些技术包括Enterprise Service..NET Remoting.XML Web Service.MSMQ ...
- WCF开发时如何选择正确的实例模式(InstanceMode)?
WCF开发时如何选择正确的实例模式(InstanceMode)? 在使用WCF实例模型时,你是否思考过这几个的问题: ”WCF中的实例模式如何正确应用”? ”使用WCF中的实例模式有何原则可以遵循 ...
- wcf系列5天速成——第一天 binding的使用(1)
原文:wcf系列5天速成--第一天 binding的使用(1) 作为WCF速成系列,只介绍些项目开发中常用到的实战知识. 学习wcf,还是对其中的几个术语要了解一下.wcf中有一个ABC的概念,就是 ...
- 【WCF系列二:如何调用WCF服务】WCF入门教程(图文)VS2012
上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了.小生自认为一个ITer如果想要做的更好,就需要将自己的所学.所用积极分享出来,接收大家的指导和吐槽.网上也有很多WCF相关的教程, ...
- MSDN Webcast 跟我一起从零开始学WCF系列课程
系列课程 >跟我一起从零开始学WCF系列课程 跟我一起从零开始学WCF系列课程(1):WCF概述 (Level 200) 讲 师:徐长龙 课程简介:从 本堂课开始我们将开启一个新的 ...
- WCF系列教程之WCF服务协定
本文参考自:http://www.cnblogs.com/wangweimutou/p/4422883.html,纯属读书笔记,加深记忆 一.服务协定简介: 1.WCF所有的服务协定层里面的服务接口, ...
随机推荐
- Python第9天
迭代器(减少代码量增强可读性)和生成器(只能遍历一次):遵循迭代器协议,就是生成可迭代对象 生产者和消费者模型:可触发生成器运行的方法 直接调用next方法 用系统next+生成器的方法 send y ...
- win10下安装ubantu
最近想看一点深度学习的东西,发现还是用linux更加方便一些.虽然,我对linux一窍不通....但是,目前很多教材,框架,都是基于linux.本来打算用虚拟机,后来发现虚拟机对于GPU的支持不好搞. ...
- Javascript 京东轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- redis 安装启动
1.解压 tar -zxvf redis文件 2. make 3. cp redis-server redis-cli /usr/local/redis cp redis.conf /usr/loca ...
- AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
--转载https://www.cnblogs.com/starwolf/p/3365834.html https://www.freebuf.com/column/171939.html 分组密码有 ...
- Zabbix客户端日志出现(Not all processes could be identified, 解决
场景:因为使用了netstat -p参数. 权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空 (Not all ...
- 初识Scratch 3.0
之前在帮朋友搜集少儿编程教育资料的时候,发现了麻省理工开发的积木式编程语言的Scratch,最近有空玩了下,感觉很惊艳,我能想象用它做一些有趣的事情,Scratch把编程元素变成像乐高积木一样,可以通 ...
- matplotlib绘图基本用法-转自(http://blog.csdn.net/mao19931004/article/details/51915016)
本文转载自http://blog.csdn.net/mao19931004/article/details/51915016 <!DOCTYPE html PUBLIC "-//W3C ...
- lanya
var app = getApp() Page({ data: { motto: 'Hello World', openBLE:'打开蓝牙设备', startBLEDiscover ...
- Functional Language
1.What is functional language? 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定 ...