WCF入门(八)---WCF服务绑定
WCF服务绑定是一个集合,每个元素定义了服务与客户端进行通信方式的几个元素。传输元素和一个消息编码元素各自结合两个最重要的组成部分。这里是WCF服务绑定常用的列表。
基础绑定
基础约束是由basicHttpBinding的类提供的,这种结合使用HTTP协议进行传输为目的,并代表一个WCF服务作为一个ASP.NET Web服务(ASMX Web服务),这样方便ASMX Web服务的老客户可以使用新服务。这被设置为默认的受Silverlight启用WCF Web服务绑定,是一个标准Web服务通信的风格结合。这并不支持可靠的消息。
在下文中介绍的代码片段,描绘的默认设置基础绑定。
<basicHttpBinding>
<binding name="basicHttpBindingDefaults" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="" maxBufferSize="" maxReceivedMessageSize=""
messageEncoding="Text" proxyAddress="" textEncoding="utf-8" transferMode="Buffer"
useDefaultWebProxy="true" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00">
<readerQuotas maxArrayLength="" maxBytesPerRead="" maxDepth=""
maxNameTableCharCount="" maxStringContentLength=""/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message algorithmSuite="Basic256" clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
上面的默认设置有其明显的局限性邮件大小是有限的,在这里安全模式也无法比拟。但是基本的结合解决了这个问题类似下面的定制。
<basicHttpBinding>
<binding name="basicHttpSecure" maxBufferSize=""
maxReceivedMessageSize="">
<readerQuotas maxArrayLength="" maxStringContentLength=""/>
<security mode="TransportWithMessageCredential" />
</binding>
</basicHttpBinding>
Web服务(WS)绑定
这是通过WSHttpBinding类提供,此绑定相似于基础约束,并使用相同的协议进行传输,但提供了几个WS- *规范,比如WS- 可靠消息,WS- 事务,WS- 安全,还有更多。简而言之,WsHttpBinding等于总结basicHttpBinding和WS- *规范。在这里,在下文中介绍的代码片段,说明默认设置WS绑定。
<wsHttpBinding>
<binding name="wsHttpBindingDefaults" allowCookies="false" bypassProxyOnLocal="false"
closeTimeout="00:01:00" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="" maxReceivedMessageSize="" messageEncoding="Text"
openTimeout="00:01:00" receiveTimeout="00:10:00" proxyAddress=""
sendTimeout="00:01:00" textEncoding="utf-8" transactionFlow="false"
useDefaultWebProxy="true" >
<readerQuotas maxArrayLength="" maxBytesPerRead="" maxDepth=""
maxNameTableCharCount="" maxStringContentLength=""/>
<reliableSession enabled="false" ordered="true" inactivityTimeout="oo:10:00" />
<security mode="Message">
<message algorithmSuite="Basic256" clientCredentialType="Windows"
esatalishSecurityContext="true" negotiateServiceCredential="true" />
<transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
</security>
</binding>
</wsHttpBinding>
IPC绑定
这种结合使得使用命名管道,由netNamedPipeBinding类提供。这是最快的约束和所有可用的绑定是最安全的。虽然,消息级安全性这里不支持,消息是因为一个强大的运输保障的默认安全。在这里,下面的代码片段,说明默认设置为IPC结合。
<netNamedPipeBinding>
<binding name="netPipeDefaults" closeTimeout="00:01:00"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize=""
maxBufferSize="" maxConnections="" maxReceivedMessageSize=""
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transactionProtocol="OleTransactions"
transferMode="Buffered" >
<readerQuotas maxArrayLength="" maxBytesPerRead="" maxDepth=""
maxNameTableCharCount="" maxStringContentLength=""/>
<security mode="Transport">
</security>
</binding>
</netNamedPipeBinding>
其他类型的服务绑定如下:
TCP Binding - 由NetTcpBinding类结合TCP协议的通信在同一网络内,并且不会以二进制格式信息编码。这种结合被认为是最可靠的对比。
WS Dual Binding - 这种结合便于双向通信,即消息可以被发送和接收的客户端和服务的唯一例外的是wsHttpBinding。这是由WSDualHttpBinding类提供的。
Web binding - 这种结合被设计为表示WCF服务中的HTTP请求的形式,通过使用HTTP的GET和HTTP的POST等方式,这是可用的WebHttpBinding类,并与社会网络常用。
MSMQ Binding - 这个绑定由NetMsmqBinding类,还提供用于提供在情况下,服务于一个不同于客户端发送的处理消息时间的解决方案。这种结合使得使用MSMQ传输,并提供支持的消息队列。 MSMQ是微软提供的队列消息实现。
Federated WS Binding - 这种结合是由WSFederationHttpBinding类提供。这是WS结合的一种具体形式,并提供支持,以联合安全。
Peer Network Binding - 由NetPeerTCPBinding类提供,该结合主要是用在文件共享系统,例如种子和TCP协议中使用。它使用TCP协议等网络运输。在这个网络中每个机器(节点)充当客户端和一个服务器到另一个节点。这是用在像奔流的文件共享系统。
MSMQ Integration binding - 这种结合是由MsmqIntegrationBinding类提供的。这种结合提供支持MSMQ(微软消息队列),使现有通信系统进行通信。
除了这些,还可以创建自定义绑定。然而,由于它能够调整每个WCF配置属性绑定,需要创建自定义绑定的产生极少。
原文地址:http://www.yiibai.com/wcf/wcf_service_binding.html
WCF入门(八)---WCF服务绑定的更多相关文章
- WCF入门三[WCF宿主]
一.概述 WCF程序必须在宿主上运行,也就是WCF服务必须寄宿在某一个windows的进程中,可以是IIS.控制台程序.窗体程序.WAS以及所有.net程序等程序进程中.在我用VS2013创建WCF服 ...
- WCF入门教程[WCF基本应用]
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- WCF入门一[WCF概述]
一.什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的.安全.可信赖.事务性的解决方案,且能与已有系统兼容协作 ...
- WCF入门四[WCF的通信模式]
一.概述 WCF的通信模式有三种:请求/响应模式.单向模式和双工通信. 二.请求/响应模式 请求/响应模式就是WCF的默认模式,前面几篇随笔中的示例都是这种模式,当客户端发送请求后(非异步状态下),即 ...
- WCF入门二[WCF的配置文件]
一.概述 往往在很多项目中数据库连接字符串.变量和一些动态的加载类会写在配置文件中.WCF也会在配置文件中写入一些配置参数,比如服务的地址.服务用于发送和接收消息的传输和消息编码等,通过配置文件可以灵 ...
- 纯手写wcf代码,wcf入门,wcf基础教程
1.定义服务协定 =>定义接口 using System.ServiceModel; namespace WcfConsole { /// <summary> /// 定义服 ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- WCF入门教程(三)定义服务协定--属性标签
WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...
随机推荐
- Oracle bbed使用说明1
一.centos上编译安装BBED工具 [orasrv@localhost ~]$ cd $ORACLE_HOME/rdbms/lib [orasrv@localhost ~]$ make -f in ...
- perl中shift 和unshift 操作
##################################################################### unshift 和shift 对一个数组的开头进行操作(数组 ...
- C#二维数组及其本质(转)
C#中二维数组包含两类:二维数组和数据矩阵.(这是我个人分类法,我认为比较能反映本质). 如上图,是二维数组,横向为第一维度,纵向为第二维度,不同维度可以有不同长度. 如果去掉元素7,那么上图也可能是 ...
- Python中的除法
在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分).例如 int a=15/10; a的结果为1. 同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要 ...
- ngnix 下配置多域名跳转 配置方法
自己申请了多个域名,统一使用 http://goipc.cn/ 格式访问网站 server_name goipc.cn ; server_name www.goipc.cn ; server_name ...
- Jquery post 传递数组给asp.net mvc方法
以批量删除数据为例 做批量删除会需要传递要删除的数据ID数组 function RemoveLog(){ var postModel=[]; //遍历复选框获取要删除的数据ID 存放到数组中 $( ...
- SQL Server 2008 远程过程调用失败
今天在写程序的时候,突然间发现数据库连接不上了,打开管理器发现SQL2008出现这样的错误. 非常的郁闷,找了好多方法都没有解决,最后想想是不是应为安装vs2013中的SQL Server Expre ...
- startDiscovery() and startLeScan().
You have to start a scan for Classic Bluetooth devices with startDiscovery() and a scan for Bluetoot ...
- DB天气app冲刺二阶段第十一天(完结)
今天最后一天冲刺了,明天就不再冲刺了..已经把所有的技术的问题还有设计的问题都弄好了吧应该说 至少目前来说是的.因为有的实现不了的或者需要耗费时间的已经果断舍弃了,然后需要完善的也都基本完善了. 现在 ...
- word小技巧
如何将英文和数字替换为times new romans 1,点击替换(ctrl+H) .2,在查找内容中输入”([A-Z0-9])“(不包括引号,但包括小括号),这是替换所有大写字母和数字,如果还想替 ...