菜鸟学习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& ...
随机推荐
- iOS 设置button文字过长而显示省略号的解决办法
UIButton * button =[UIButton buttonWithType:UIButtonTypeCustom];button.titleLabel.adjustsFontSizeToF ...
- mormot 数据集转换为JSON字串
mormot 数据集转换为JSON字串 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graph ...
- aspectj pointcut 找不到类型pointcut cannot be resolved to a type
引入了aspectJ后,文件提示找不到pointcut类型.修改如下: .project文件添加内容,红色字体为添加的引用 <?xml version="1.0" encod ...
- JS-定时器管理实例
/** * Created by 12461 on 2016/11/6. */window.onload = function () { var oBtn1 = document.getElement ...
- MYSQL 查询出最大/最小值所在的记录
基本上都知道用MAX()/MIN()来求出所需的最大/最小值,但是只能查出那个最值的字段,而想查出整条记录或是对应的其他值却不行(SELECT MAX(grade), name FROM test;- ...
- React与ES6(三)ES6类和方法绑定
React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...
- SP_APPROVALSET_OVERTIME 插入單據
CREATE OR REPLACE PROCEDURE SP_APPROVALSET_OVERTIME(VAPPLY_NO varchar2,VAPPLYKIND_NO varchar2,VFAC_N ...
- 【转】Fiddler的基本介绍
转:http://kb.cnblogs.com/page/130367/#basic Fiddler的官方网站: www.fiddler2.com Fiddler的官方帮助:http://docs. ...
- AngularJS-Controller的使用-读书笔记
最近在读<Angular JS权威教程>读到第9页,按着示例做,居然报错,说MyController undefined,初学者不懂啊,找了个官方的文档,按着改了一下,貌似成功了,有需要的 ...
- extjs中form.reset(true)出现的bug修复
在之前的开发extjs中,用ext.form.panel开发了一个表单,当使用了reset(true)之后,再次使用getRecord()却还是可以得到值,该值为上一次的旧值,查看了api文档,再结合 ...