菜鸟学习WCF笔记-Address
终结点是WCF最为核心的对象,因为它承载了所有通信功能。服务通过相应的终结点发布出来,客户端通过与之匹配的终结点对服务进行调用。终结点有地址、绑定和契约ABC三要素构成。
Address
作为终结点的三要素之一地址(Address),在基于WCF通信中不仅仅用于定位服务,还提供额外的寻址信息,同时还包含着用于进行服务认证的服务身份信息。
其地址的URL规则如下:
[传输协议(Scheme)]://[主机名称|域名|IP地址]:[可选端口]/请求资源
如:http://test.com:81/testservices.svc
传输协议为:http
主机名称:test.com
端口:81
请求资源路径:testservices.svc
WCF下典型传输协议:
HTTP/HTTPS (提供简单请求回复、无状态、无连接)
Net.Tcp (有连接的传输协议(通过客户端和服务端握手),有状态,支持双工通信,支持可靠通信)
Net.Pipe 命名管道(Windows平台及UNIX系统下实现跨进程通信IPC的标准实现方式)
Net.Msmq 消息队列 MSMQ
EndpointAddress
终结点在WCF应用编程中通过ServiceEndpoint 类型表示,有三个核心属性:终结点地址,绑定,契约
表示终结点地址的Address属性是一个类型为System.ServiceModel.EndpointAddress的对象,地址的三个典型功能(服务标识、定位。辅助寻址和服务身份标识)分别对应URL、Headers和Identity三个只读属性。
ServerHost
WCF通过serverHost完成对服务的寄宿,而被寄宿的服务通过添加到ServiceHost的终结点暴露出来成为可调用寻址和调用的资源。
服务的调用
客户端通过服务代理(Service Proxy)、借助SvcUtil.exe、添加服务引用等方式,生产核心类是继承自ClientBase<TChannel>。
ClientBase<TChannel>针对服务的调用实际上是通过只读属性Channel表示内部代理实现的,这个内部代理则是通过只读属性ChannelFactory 返回的ChannelFactory<TChannel>对象来创建的。
HTTP.SYS
IIS6.0通过引入HTTP.SYS采用了一种全新的监听机制(之前是InetInfo.exe),严格来说HTTP.SYS不属于IIS的范畴之内,它是一个用于监听网络请求的网络驱动。HTTP.SYS运行于内核模式下,使IIS在性能和稳定性方面较之前的版本都有较大的改进。
IIS和其他WEB应用均可以使用它来作为自己的监听器,从而实现端口共享。
HTTP.SYS的端口共享仅仅正对HTTP协议,对于采用TCP的服务,需要通过其他的寄宿方式来实现。
菜鸟学习WCF笔记-Address的更多相关文章
- 菜鸟学习WCF笔记-概念
背景 WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的<WCF全面解析>学习下,顺带做些笔记,如有错误,欢迎各路大神 ...
- 菜鸟学习WCF笔记-契约(Contract)
契约,契约确保了服务的正常调用,客户端以契约的方式进行服务端调用,而服务则需要按照契约规定的方式提供服务. 契约是服务提供的一组操作的描述 功能上讲:每个操作对应着某个具体的功能实现,以及调用这个操作 ...
- 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代码方式来 ...
- 学习WCF笔记之二
一.学习文章http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html 二.步骤 学习WFC,按照大神的文章一步步学习,不过 ...
- 开心菜鸟学习系列笔记-----Javascript(1)
js 一些常见的使用方法 // target : 不管是否出现冒泡,他都是代表最开始引发事件的对象 // this : 是指当前函数. //ie 事件对象 : window ...
- 开心菜鸟学习系列学习笔记------------nodejs util公共函数
global 在最外层定义的变量: 全局对象的属性: 隐式定义的变量(未定义直接赋值的变量). 一.process process 是一个全局变量,即 global 对象的属性 ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- [转]学习 WCF (6)--学习调用WCF服务的各种方法
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...
- WCF 笔记 (2) - 传输泛型 List 对象
WCF 笔记 (2) - 传输泛型 List 对象 本帖介绍怎么在 WCF 中,在 Server-side 和 Client-side 之间,传递默认无法传输的 List<T>.List& ...
随机推荐
- 【BZOJ2595】游览计划(状压DP,斯坦纳树)
题意:见题面(我发现自己真是越来越懒了) 有N*M的矩阵,每个格子有一个值a[i,j] 现要求将其中的K个点(称为关键点)用格子连接起来,取(i,j)的费用就是a[i,j] 求K点全部连通的最小花费以 ...
- js根据生日计算出年龄
/*根据出生日期算出年龄*/ function jsGetAge(strBirthday){ var returnAge; var strBirthdayArr=strBirthday.split(& ...
- Android之activity初讲
前天我们已经成功创建了第一个Android项目,如果我要把软件推荐给我的第一个用户,毫无疑问是从界面开始介绍.因为即使你的程序算法再高效,架构再出色,用户根本不会在乎这些,他们一开始只会对看到的东西感 ...
- 退役?OR 继续
今天突然想了好多.上次CB那么决绝的退役,还有其他的一些东西.觉得大家说的都挺对的.看待问题的方式不同,然后或多或少就变了.预备役的事情就是想能不能不让大家因为上不了场退役. 想起以前的自己那么坚决的 ...
- 原生js获取样式
js中的获取样式是在是让人头疼,为了方便兼容多个浏览器,把设置样式封装成一个函数. 函数如下: function getStyle(element, property) { var value = e ...
- java多线程-Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...
- mac下sublime text3安装SFTP及使用
mac下sublime text3安装SFTP 1.shift+command+p进入控制面板 2.输入install进入程序安装界面选择需要安装的插件(SFTP) 3.直接进行安装(需要联网) 4. ...
- Nginx 获取真实 IP 方案
问题根源: 基于七层的负载均衡系统,获取IP的原理都是通过XRI和XFF进行处理,从中选出“正常情况下”的源头IP,然而这两个Header都是普通的HTTP头,任何代理程序都可以轻易修改伪造它们,使得 ...
- iOS从不同页面跳转回到指定控制器
HomeViewController *homeVC = [[HomeViewController alloc] init]; UIViewController *target = nil; for ...
- 状态机学习(三)解析JSON
来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...