菜鸟学习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& ...
随机推荐
- sendEmail的使用
坑!坑!坑!今天又弄了一天如何发送邮件,首先用sendmail,postfix.....等,都试过了,各种报错,然后就从早上弄到现在,在群里问问题的时候,一位好心的大哥说了他用的是sendEmail, ...
- java1.7集合源码阅读: Stack
Stack类也是List接口的一种实现,也是一个有着非常长历史的实现,从jdk1.0开始就有了这个实现. Stack是一种基于后进先出队列的实现(last-in-first-out (LIFO)),实 ...
- 修正下载链接的树莓派Flash教程(前置:Chromium浏览器)
前端时间想在网上搜罗一下树莓派安装Flash的教程,结果到下载插件那里wget总是死活下载不了,后面发现原链接已经404了,在Bing搜索了一番之后发现Flash播放器的网址已经改了.首先安装Chro ...
- Centos7 Cacti-0.8.8g安装及SNMP简介
在官网可以看到关于cacti的下载说明http://www.cacti.net/download_cacti.php Download Cacti The latest stable version ...
- python3中的zip
在 python2 中zip可以将两个列表并入一个元组列表,如: a = [1,2,3,4] b = [5,6,7,8] c = zip(a,b) 结果:c [(1,5),(2,6),(3,7),(4 ...
- 用Backbone.js创建一个联系人管理系统(一)
原文 Build a Contacts Manager Using Backbone.js: Part 1 在这个教程里我们将会使用Backbone.js,Underscore.js,JQuery创建 ...
- kenrnel 驱动中常用的宏
http://blog.csdn.net/uruita/article/details/7263290 1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名 ...
- jsp_数据库的连接
一.添加数据库以及表 在这里我们使用的是mysql数据库 二.配置数据库的驱动程序 将mysql的驱动程序复制到Tomcat目录下的lib目录中 注:在Tomcat中如果配置了新的jar包,则配置完成 ...
- 纯css径向渐变(CSS3--Gradient)
渐变 一.CSS3的径向渐变 效果图网址:http://www.spritecow.com 图像拼接技术 CSS3 Gradient分为linear-gradient(线性渐变)和radial-gra ...
- Android之Inflate()方法用途
转自:http://blog.csdn.net/andypan1314/article/details/6715928 Inflate()作用就是将xml定义的一个布局找出来,但仅仅是找出来而且隐藏的 ...