[WCF 学习笔记] 9. 端点绑定
2009-01-17 15:07
260 查看
Endpoints 包含了重要的地址信息,包括服务地址以及通讯协议,客户端只有获知这些信息才能与服务建立通讯。而 Binding
用于指定 WCF 两个端点(endpoint)之间的通讯细节,两个端点的 Binding
应该是一致的。端点和绑定对象合作,共同完成服务通讯和调用。服务面对的客户端是多样的,不同的客户端可能选择不同的通讯方式,不同的安全方案。WCF
允许我们为服务添加多个绑定和端点,这样我们就可以使用同一个服务为不同的客户需求提供解决方案,这是 WebServices 和 Remoting
所无法完成的。
Endpoints 格式:scheme://machine:port/path
如:
http://192.168.0.1:8080/IService1
net.tcp://202.100.100.1:123/IService2
net.pipe://localhost/MyPipe
net.msmq://localhost/MyService
Binding 的内容包括:
Protocols: 设置安全机制。如消息可靠接收,事务上下文等。
Encoding: 设置消息编码方式。如 Text/XML、Binary 或 MTOM。
Transport: 设置底层通讯协议。如 Http、TCP 等。
Binding
由一系列分工合作的 Element 组成,其中至少包括用于通讯和消息编码的两个 Element。WCF Framework
为我们提供了大量常用的 Binding,当然我们也可以自己开发专用的 Binding 类型。使用 Binding
很简单,创建系统提供或自己开发的 Binding
对象,调整或使用其默认属性,最后用该绑定对象作为参数创建端点即可。我们可以使用编码或者配置文件来调整绑定对象的属性,有关配置文件的信息可以参考
MSDN 或者雨痕后面撰写的章节。
WCF Framework 提供的 Binding
BasicHttpBinding: 最简单的绑定类型,通常用于 Web Services。使用 HTTP 协议,Text/XML 编码方式。
WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。
WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。
WSFederationHttpBinding: 支持 WS-Federation 安全通讯协议。
NetTcpBinding: 效率最高,安全的跨机器通讯方式。
NetNamedPipeBinding: 安全、可靠、高效的单机服务通讯方式。
NetMsmqBinding: 使用消息队列在不同机器间进行通讯。
NetPeerTcpBinding: 使用 P2P 协议在多机器间通讯。
MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。
Binding 基本信息
粗体表示其基本编码方式。我们注意到 NetTcpBinding、NetPeerTcpBinding、NetNamedPipeBinding、NetMsmqBinding 只能用于 .NET WCF-to-WCF。
(图片选自 《Programming WCF Services》)
Binding 选择策略
(图片选自 《Programming WCF Services》)
有关 Binding 的更详细信息请参考 ms-help://MS.MSSDK.1033/MS.NETFX30SDK.1033/WCF_con/html/2c243746-45ce-4588-995e-c17126a579a6.htm
Example
Server.cs
ServiceHost host = new ServiceHost(typeof(CalculateService));
host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(), "http://localhost:8080/calc");
host.Open();
Client.cs
CalculateClient client = new CalculateClient(new WSHttpBinding(), new EndpointAddress("http://localhost:8080/calc"));
client.Add(1, 2);
用于指定 WCF 两个端点(endpoint)之间的通讯细节,两个端点的 Binding
应该是一致的。端点和绑定对象合作,共同完成服务通讯和调用。服务面对的客户端是多样的,不同的客户端可能选择不同的通讯方式,不同的安全方案。WCF
允许我们为服务添加多个绑定和端点,这样我们就可以使用同一个服务为不同的客户需求提供解决方案,这是 WebServices 和 Remoting
所无法完成的。
Endpoints 格式:scheme://machine:port/path
如:
http://192.168.0.1:8080/IService1
net.tcp://202.100.100.1:123/IService2
net.pipe://localhost/MyPipe
net.msmq://localhost/MyService
Binding 的内容包括:
Protocols: 设置安全机制。如消息可靠接收,事务上下文等。
Encoding: 设置消息编码方式。如 Text/XML、Binary 或 MTOM。
Transport: 设置底层通讯协议。如 Http、TCP 等。
Binding
由一系列分工合作的 Element 组成,其中至少包括用于通讯和消息编码的两个 Element。WCF Framework
为我们提供了大量常用的 Binding,当然我们也可以自己开发专用的 Binding 类型。使用 Binding
很简单,创建系统提供或自己开发的 Binding
对象,调整或使用其默认属性,最后用该绑定对象作为参数创建端点即可。我们可以使用编码或者配置文件来调整绑定对象的属性,有关配置文件的信息可以参考
MSDN 或者雨痕后面撰写的章节。
WCF Framework 提供的 Binding
BasicHttpBinding: 最简单的绑定类型,通常用于 Web Services。使用 HTTP 协议,Text/XML 编码方式。
WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。
WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。
WSFederationHttpBinding: 支持 WS-Federation 安全通讯协议。
NetTcpBinding: 效率最高,安全的跨机器通讯方式。
NetNamedPipeBinding: 安全、可靠、高效的单机服务通讯方式。
NetMsmqBinding: 使用消息队列在不同机器间进行通讯。
NetPeerTcpBinding: 使用 P2P 协议在多机器间通讯。
MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。
Binding 基本信息
粗体表示其基本编码方式。我们注意到 NetTcpBinding、NetPeerTcpBinding、NetNamedPipeBinding、NetMsmqBinding 只能用于 .NET WCF-to-WCF。
(图片选自 《Programming WCF Services》)
Binding 选择策略
(图片选自 《Programming WCF Services》)
有关 Binding 的更详细信息请参考 ms-help://MS.MSSDK.1033/MS.NETFX30SDK.1033/WCF_con/html/2c243746-45ce-4588-995e-c17126a579a6.htm
Example
Server.cs
ServiceHost host = new ServiceHost(typeof(CalculateService));
host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(), "http://localhost:8080/calc");
host.Open();
Client.cs
CalculateClient client = new CalculateClient(new WSHttpBinding(), new EndpointAddress("http://localhost:8080/calc"));
client.Add(1, 2);
相关文章推荐
- WCF 学习笔记之绑定(Binding)
- WCF学习笔记--如果选择绑定
- WCF学习笔记(五)契约双工通信、多契约绑定及对数据库增删改查等综合实例
- WCF学习笔记--WCF提供的9个标准绑定
- WCF 学习笔记之绑定(Binding)
- WCF学习笔记(六)自定义绑定和C/S之间传输流的绑定
- 跟着Artech学习WCF(2) netTcpBinding 绑定
- WCF学习笔记:svc、config和code文件之间的关系
- WCF 学习笔记 一WCF 基础(WCF基础概念)
- WCF学习笔记-DataContract等价性
- WCF技术剖析_学习笔记之三
- ANDROID基础学习笔记_1_方法的四种绑定方式
- WPF学习笔记一 依赖属性及其数据绑定
- Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
- 学习笔记——WCF
- ASP.NET学习笔记2--自己写代码绑定Gridview
- 【应用篇】WCF学习笔记(一):Host、Client、MetadataExchage
- WCF学习笔记之 - 搭建WCF技术知识框架
- SpringMVC学习笔记(5):绑定数据(3)
- 树莓派学习笔记:设备端口绑定