WCF入门(一)——基本知识
构建一个WCF程序通常分为三个部分:服务类(Server)、宿主(Host)、客户程序(Client)。有一个很重要的程序集(System.ServeiceModel)要引用,它包含WCF的核心功能。
主要内容
1.地址(addresses)
2.契约(contracts)
3.绑定(bindings)
4.端点(endpoints)
5.寄存
一、地址(addresses)
地址由模式、域、端口和路径组成。模式指所用的传输协议如TCP、命名管线、HTTP、MSMQ等,WCF中针对这些协议的模式为net.tcp 、net.pipe、 http 、net.msmq。
地址通常采用如下格式:
[基地址]/[可选的URI]
基地址(Base Address)通常的格式如下:
[传输协议]://[机器名或域名][:可选端口]
http://localhost:8001
http://localhost:8001/MyService
net.tcp://localhost:8002/MyService
net.pipe://localhost/MyPipe
net.msmq://localhost/private/MyService
net.msmq://localhost/MyService
二、契约(contracts)
WCF 的所有服务都会公开为契约(Contract)。契约与平台无关,是描述服务功能的标准方式。WCF 定义了四种类型的契约。
服务契约: 定义一个接口,给接口附加[ServiceContract] ,给接口方法附加[OperationContract]
数据契约: 数据契约定义将在客户端与服务器端传送的各种数据类型。定义数据契约时需要使用[DataContract] 和[DataMember] 。
消息契约: 可以使用消息契约来定制WCF 服务与WCF 客户间相互通讯的SOAP 消息格式。
错误契约: 定义在服务中如何处理异常,以及这些异常又如何传送到客户端。
三、绑定(bindings)
Binding实现的是在客户端和服务端进行通讯的底层细节,包括数据如何传输(比如采用Tcp,Http等),如何解决安全问题(SSL,Message Level Security等),传输的消息的格式(如text/xml,MTOM,binary等)。
Binding包括三个组成部分:NameSpace,Name和BindingElement
HTTP协议:BasicHttpBinding 、 WSHttpBinding 和WSFederationHttpBinding 。
两个HTTP 通道实现双向通讯:WSDualHttpBinding。
TCP协议:NetTcpBinding。
P2P:NetPeerTcpBinding。
命名管道:NamedPipeBinding。
消息队列:NetMsmqBinding 和MsmqIntegrationBinding。
四、端点(endpoints)
端点的用处是方便客户程序调用服务的操作。端点定义了在什么地方可以访问服务、用什么方式访问以及有哪些操作可用,这就是端点的三要素(地址 绑定 契约)。端点可以在程序中设置也可以用配置文件的形式设置。
五、寄存
服务做好了后需要能够运行,因为客户在调用服务的时候服务必须是处在运行状态的,这就需要将服务寄存在一个地方,在一些Demo中会使用控制台程序来做宿主寄存服务,除此之外还可以是WinForm程序、WPF应用、Windows 服务、IIS、WAS等。
参考资料有http://www.cnblogs.com/wujy/archive/2013/04/07/3006196.html
http://www.cnblogs.com/jillzhang/category/121346.html
WCF入门(一)——基本知识的更多相关文章
- 学习WCF入门的第一个实例
一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Clie ...
- WCF入门教程(五)配置文件
WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- WCF入门教程(三)定义服务协定--属性标签
WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...
- WCF入门教程(二)如何创建WCF服务
WCF入门教程(二)从零做起-创建WCF服务 通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) ...
- WCF入门教程(一)简介
WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foundation), 是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NE ...
- [WCF编程]1.WCF入门示例
一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...
- 无废话WCF入门教程六[一个简单的Demo]
一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...
- WCF 入门(25,26,27,28)
前言 项目赶时间,工期紧,熬过这段时间应该就好了吧.希望如此. 今天把自己那部分写的差不多了,回来和小伙伴一起又看了一遍<夏洛特烦恼>,还挺好看的,明天继续加班,do it. 第25-28 ...
- WCF入门(22)
前言 本还想写一集WCF入门教程的,心情实在不好,明天又还有面试,改天再写吧. 说一下今天遇到的入职坑.面试能坑,上班能坑,完全没想到入职也能坑.切身经历. 今年10月份想换工作,更新了一下简历,接到 ...
随机推荐
- 2014年度辛星css教程夏季版第四节
接下来的这一节我计划讲解的是超链接和列表的样式,然后我们做出一个导航栏出来,其实导航栏是非常常见的,但是我们这里做得这个有点并不那么完善,等我们学完了css之后再完善它. ************** ...
- javaWeb中的/路径问题
在写javaweb的时候,在写路径的时候,/有时候表示站点根目录,有时候表示当前web应用根目录,究竟如何区分呢? 首先,我们建议开发的时候,跳转之类的都是用绝对路径(注意:不是物理路径),而不是使用 ...
- unity3d游戏开发(一)——圈圈叉叉
参考:http://game.ceeger.com/forum/read.php?tid=1719 ———————————————————开始————————————— 好吧,吹了那么多我们开始吧,先 ...
- C#基础|面向对象之继承
面向对象的世界 在现实的世界里,发现事物可以进行分类,并且各个分类中又有这关系. 在面向对象的世界里,人们用类来模拟现实世界中的各种关系. 从大的范围来说,人属于人类,如果按照不同的身份将人类进行 ...
- pptpvpn记录用户登录和流量信息
这个问题困扰了我很久,终于在pppd的man文档里,发现了踪迹.在man中的SCRIPTS下有一系列的参数,其中PEERNAME就是登陆的用户名,并且在/etc/ppp/ip-up和/etc/ppp/ ...
- 批处理:遍历输出指定后缀格式的文件名.bat
批处理:遍历输出指定后缀格式的文件名.bat @echo off type nul >C:\result.txt for /r "d:\我的文档\桌面\交接\webservice\We ...
- PHP漏洞全解(八)-HTTP响应拆分
本文主要介绍针对PHP网站HTTP响应拆分,站在攻击者的角度,为你演示HTTP响应拆分. HTTP请求的格式 1)请求信息:例如“Get /index.php HTTP/1.1”,请求index.ph ...
- Unity3D中的第三人称镜头的脚本控制
原地址:http://blog.csdn.net/mobanchengshuang/article/details/27591271 好久没有敲Blog了,谢谢大家的留言.关注.私信等支持,但是我好像 ...
- eclipse, Log4j配置(真心的详细~)
转自: http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html a). 新建Java Project>>新建pa ...
- 汇编中,BP,SP有何区别?分别怎么使用?
bp寄存器,跟其它什么BX,AX一样的用法, SP是用在栈上的,配合SS使用,像SS:SP SS上放段地址,SP上放偏移地址. 寻址时,像[bp],相当于SS:[bp] 就是说它默认使用SS 像BX默 ...