WCF 学习笔记 一WCF 基础(WCF基础概念)

WCFWindows Communication Foundation)是基于Windows平台下开发和部署服务的SDKWCF为服务提供了运行时环境,使得开发者能够将CLR类型公开为服务,又能够已CLR类型的方式使用服务。

服务是公开的一组功能的集合。服务的创建对于外部而言是不透明的,所以WCF服务通常通过公开元数据(metadata)的方式描述可用的功能以及服务可能采用的通信方式。

元数据实际就是服务中所描述的终结点(Endpoint)。终结点是由地址(Address)、绑定(Binding)、契约(Contract)组成。就是WCF中常说的ABC三要素。

地址(AddressWCF的每个服务都具有一个唯一的地址(Address)。地址包含两个重要元素:服务位置与传输协议(transport protocol),或者是用于服务通信的传输样式(transport schema)。

服务位置包括目标机器名、站点或网络、通信端口、管道或队列,以及一个可选的特定路径或者URI

WCF支持的传输协议:

HTTP     http://localhost:8001/MyService

TCP      net.tcp://localhost:8002/MyService

Peer network(对等网)

IPC(内部进程In-Procnet.pipe://localhost/MyPipe

MSMQ   net.msmq://local host/private/MyQueue 如果处理私有队列,则必须指定队列类型,但对于公有队列,队列的类型可以省略。

绑定(Binding。服务之间的通信方式多种多样,有多种可能的通信模式。WCF定义了六种常用的绑定:

基本绑定(Basic Binding

TCP绑定

IPC绑定

Web服务绑定(WS-* Binding

WS双向绑定(Duplex WS Binding

MSMQ绑定

绑定的格式与编码。每种标准绑定使用的传输协议与编码格式都不同,多个编码的可能性是存在的。常用绑定的传输协议与编码格式:

名字

传输协议

编码格式

互操作性

BaseHttpBinding

HTTP/HTTPS

Text,MTOM

Yes

NetTcpBinding

TCP

Binary

No

NetNamedPipeBinding

IPC

Binary

No

WSHttpBinding

HTTP/HTTPS

Text, MTOM

Yes

WSDualHttpBinding

HTTP

Text,MTOM

No

NetMsmqBinding

MSMQ

Binary

No

文本编码格式通常允许WCF服务(或客户端)能够通过HTTP协议与其他服务(或客户端)通信,而不用考虑通信传输的范围。二进制编码格式可以获得做好的性能,却是以牺牲互操作性为代价的。因为它只支持WCF端到WCF端的通信。MTOMMessage Transmission Optimization Machanism)消息优化传输机制.

为服务选择绑定应该有一定规律,我们一般走遵守如下图的决策。

         除了上面说的常用六种绑定,WCF还定义了六种不常用的绑定。这些绑定是针对某种特定的目标场景而设计,不能脱离该场景使用这些绑定。

       对等网绑定

       WS联邦绑定

       WS 2007联邦绑定

       MSMQ集成绑定

       Web绑定

       WS2007绑定

契约(ContractWCF的所有服务都会公开为契约。契约与平台无关,是描述服务功能的标准方式。WCF定义了四种类型的契约:

服务契约(Service Contract

数据企业(Data Contract

错误契约(Fault Contract

消息契约(Message Contract

托管。WCF服务类不能凭空存在。每个WCF服务都必须托管(host)在Windows进程中,改进程被称为宿主进程(Host Process)。单个宿主进程可以托管多个服务,而相同的服务类型也能够托管在多个宿主进程中。如果服务与客户端驻留在相同的进程中,则称为进程内托管。常见的托管方式:IIS托管、WAS托管、自托管。

IIS托管和发布网站类似,需要创建虚拟目录,还需要.svc文件。.svc文件的功能主要用于识别隐藏在文件和类后面的服务代码。只支持HTTP协议。

WAS托管。Windows激活服务是一个系统服务。可以独立的安装与配置。支持所有可用的WCF传输协议、端口与队列。

自托管是有开发者提供和管理宿主进程的生命周期。

WCF用终结点表示地址、绑定、契约一种组成关系。

 

参考资料:《WCF编程第二版》、MSDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值