繁忙的一天又一天,不管其他,先继续WCF吧。 Endpoint包含地址,绑定,契约三要素。WCF作为一个Windows平台下最大的通信框架。通过终结点承载了所有通信功能。所以终结点的作用将非常重要。 本节,将介绍SOAAddressBingdingContractBehavi ...
繁忙的一天又一天,不管其他,先继续WCF吧。
Endpoint包含地址,绑定,契约三要素。WCF作为一个Windows平台下最大的通信框架。通过终结点承载了所有通信功能。所以终结点的作用将非常重要。
本节,将介绍
- SOA
- Address
- Bingding
- Contract
- Behavior
SOA
面向服务架构(Service-Oriented Architecture)代表的是一种对关注点分离的思想,对于不同的人来说具有不同的意思。
而WebService、WCF以及其他平台的Web服务则是实现SOA思想的技术手段。
SOA还是有一些基本特性是被大家共同认可的。
设计原则 | 描述 |
服务契约 | 通过契约文档,服务描述功能和目的 |
松耦合 | 依赖关系最小化 |
抽象 | 服务隐藏具体实现,只发布契约文件 |
重用 | 一种服务可以被其他服务重用 |
自治 | 服务是独立的 |
可发现 | 通过服务元数据,可以来找到服务和调用服务 |
组合 | 一种服务可以由其他服务组合而成 |
而WCF就是一个完全基于SOA的通信框架,WCF将目前微软所有的分布式技术统一。如.Net Remoting WebService MSMQ。
Address
Address指的是System.ServiceModel.EndpointAddress。
有如下属性:
最核心的就是URI。它可以作为Endpoint唯一标识。
URI的结构为:scheme://ip:point/path 如:http://127.0.0.1:10000/a/b.svc
常见的scheme有:
http/https:无状态,http默认端口80,https默认端口443
net.tcp:稳定 支持双工通信。默认端口808.
net.pipe:同一台机器,不同进程间通信。虽然命名管道本身可以实现跨平台,但在WCF中只用于同一台机器,所以ip只能为本机。
net.msmq:消息队列方式。
基地址:
除了以上通过绝对地址的方式,还可以通过“基地址+相对地址”的方式进行设置。
如何设置基地址:
class Program { static void Main(get='_blank'>string[] args) { var uris = new []{new Uri("http://localhost:10000/"),new Uri("net.tcp://localhost:10001/")}; using (ServiceHost host = new ServiceHost(typeof(SomeService),uris) { host.AddServiceEndpoint(typeof(ISomeService),new BasicHttpBinding(),"SomeName"); host.open(); Console.Read(); } } }
原标题:[Solution] 一步一步WCF 再解终结点Endpoint
关键词:wcf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。