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服务绑定的更多相关文章

  1. WCF入门三[WCF宿主]

    一.概述 WCF程序必须在宿主上运行,也就是WCF服务必须寄宿在某一个windows的进程中,可以是IIS.控制台程序.窗体程序.WAS以及所有.net程序等程序进程中.在我用VS2013创建WCF服 ...

  2. WCF入门教程[WCF基本应用]

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  3. WCF入门一[WCF概述]

    一.什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的.安全.可信赖.事务性的解决方案,且能与已有系统兼容协作 ...

  4. WCF入门四[WCF的通信模式]

    一.概述 WCF的通信模式有三种:请求/响应模式.单向模式和双工通信. 二.请求/响应模式 请求/响应模式就是WCF的默认模式,前面几篇随笔中的示例都是这种模式,当客户端发送请求后(非异步状态下),即 ...

  5. WCF入门二[WCF的配置文件]

    一.概述 往往在很多项目中数据库连接字符串.变量和一些动态的加载类会写在配置文件中.WCF也会在配置文件中写入一些配置参数,比如服务的地址.服务用于发送和接收消息的传输和消息编码等,通过配置文件可以灵 ...

  6. 纯手写wcf代码,wcf入门,wcf基础教程

    1.定义服务协定     =>定义接口 using System.ServiceModel; namespace WcfConsole { /// <summary> /// 定义服 ...

  7. 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代码方式来 ...

  8. WCF入门教程(四)通过Host代码方式来承载服务

    WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...

  9. WCF入门教程(三)定义服务协定--属性标签

    WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...

随机推荐

  1. ThreadLocal模式探索

    一.首先,ThreadLocal模式使共享数据能多个线程被访问,每个线程访问的只是这个数据的副本,线程之间互不影响. 例子1: package Thread2; public class Counte ...

  2. (转)android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源--IOS_Dialog_Library

    本文转载于:http://blog.csdn.net/zhangphil/article/details/44940339 完成这个效果的是使用了 IOS_Dialog_Library 下载地址:ht ...

  3. robots.txt文件配置和使用方法详解

    robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...

  4. mysqldump 参数说明

    mysqldump参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --all-databases --all-tablespaces , ...

  5. Python标准库 urllib2 的使用

    1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy,而不受环境变量的影响,可以使用下面的方式 impo ...

  6. SqlServer维护计划

    http://blog.csdn.net/yunye114105/article/details/6594826

  7. 【原创】jQuery插件 - Booklet翻书特效教程(一) 一般设置

    jQuery插件 - Booklet翻书特效教程(一) 一般设置 本文由五月雨恋提供,转载请注明出处. 一.宽高(width/height) 1.自定义大小 $(function(){ // 自定义页 ...

  8. IR的评价指标—MAP,NDCG,MRR

    http://www.cnblogs.com/eyeszjwang/articles/2368087.html MAP(Mean Average Precision):单个主题的平均准确率是每篇相关文 ...

  9. C# 连接 Oracle 的几种方式[转]

    本文转自:http://www.cnblogs.com/storys/archive/2013/03/06/2945914.html 一:通过System.Data.OracleClient(需要安装 ...

  10. Asp.Net原理Version1.0

    Asp.Net原理Version2.0 Asp.Net原理Version3.0_页面声明周期