快速上手WCF基础知识介绍

开发 后端
这里就一些关于WCF基础知识的介绍,文章就绑定类名称、传输、消息编码、消息版本、安全模式、可靠消息传送、事务流(默认情况下禁用)几个方面做出列举。

WCF还是比较常用的,在这里拿出来和大家分享一下关于WCF基础知识的介绍,希望对大家有用。WCF基础功能都放在一个单独的程序集System.ServiceModel.dll中。WCF的几个最重要的技术元素包括:绑定、契约、端点。

#T#如前所述,绑定封装了通道的组成顺序与处理细节,它直接决定了WCF的通信方式,消息的编码方式,通道的协议,消息传递的可靠性以及安全等内容。通过使用绑定,我们就无需了解消息在WCF通道中的实现细节,从而简化程序员的开发。正是因为此,WCF为开发人员提供了多个内置绑定,基本上涵盖了WCF应用的大部分场景。以下是Aaron Skonnard在《WCF深度绑定》一文中列举的内置绑定:

绑定类名称

传输

消息编码

消息版本

安全模式

可靠消息传送

事务流(默认情况下禁用)

BasicHttpBinding

HTTP

文本

SOAP 1.1

不支持

不支持

WSHttpBinding

HTTP

文本

SOAP 1.2 WS-Addressing 1.0

消息

禁用

WS-AtomicTransactions

WSDualHttpBinding

HTTP

文本

SOAP 1.2 WS-Addressing 1.0

消息

启用

WS-AtomicTransactions

WSFederationHttpBinding

HTTP

文本

SOAP 1.2 WS-Addressing 1.0

消息

禁用

WS-AtomicTransactions

NetTcpBinding

TCP

二进制

SOAP 1.2

传输

禁用

OleTransactions

NetPeerTcpBinding

P2P

二进制

SOAP 1.2

传输

不支持

不支持

NetNamedPipesBinding

命名管道

二进制

SOAP 1.2

传输

不支持

OleTransactions

NetMsmqBinding

MSMQ

二进制

SOAP 1.2

消息

不支持

不支持

MsmqIntegrationBinding

MSMQ

不支持(使用 WCF 之前的序列化格式)

不支持

传输

不支持

不支持

CustomBinding

您决定

您决定

您决定

您决定

您决定

您决定


每种绑定对应不同的传输协议、消息编码格式和版本以及安全、可靠性和事务模式。WCF基础功能也提供了扩展绑定的方式,例如通过CustomBinding或者定义派生与Binding的类。

WCF 的契约包括服务契约、数据契约和消息契约(特别的,还包括了错误契约,用于异常的处理)。其中服务契约为面向服务应用程序的核心,通过它可以定义服务。数据契约则为服务所要传递的数据。由于服务的调用需要跨进程或机器进行通信,就需要服务数据必须能够被序列化和反序列化。虽然.NET本身提供了数据的序列化功能,但WCF的数据契约更加符合服务数据的定义习惯。至于消息契约,则可以将服务数据定义为消息,包括XML文本格式、MTOM(消息传输优化机制)格式和二进制格式。

责任编辑:田树 来源: 博客
相关推荐

2010-02-22 16:43:09

WCF负载平衡

2011-11-04 17:26:12

2015-07-17 16:49:13

OpenStack开源云平台云计算

2009-08-11 15:17:12

C#基础知识

2009-08-13 15:40:28

C#基础知识

2011-06-24 14:34:56

SEO

2009-12-21 13:03:06

向量路由协议

2022-03-30 08:37:32

Python函数编程自定义函数

2011-07-21 17:18:52

java

2011-07-21 17:33:27

JAVA

2011-07-22 10:02:07

java

2011-07-22 10:38:04

java

2011-02-25 09:37:35

2009-07-27 16:11:01

ASP.NET网页模板

2011-07-14 23:34:56

SEO

2010-04-22 11:32:57

Lvs负载均衡

2010-04-21 17:10:25

Unix信号量

2011-07-22 09:43:37

java

2011-07-21 17:45:02

java

2009-11-09 16:06:53

WCF自定义集合
点赞
收藏

51CTO技术栈公众号