新手必看关于WCF协定概念总结

开发 后端
这里就WCF协定,服务协定、操作协定、消息协定、错误协定还有数据协定、宿主、自承载服务、宿主进程、实例化都做出了详细的介绍。

经过长时间学习WCF,上网也总喜欢收集一些资料,我认为WCF这门技术还是很值得我们去深入的研究探讨的,本人归纳了一点关于WCF协定概念上的总结,希望可以对大家起到作用。服务操作是在服务的代码中定义的过程,用于实现某种操作的功能。 此操作作为一个 WCF 客户端上的方法向客户端公开。 该方法可能返回一个值,并可能采用数量可选的参数,或是不采用任何参数且不返回任何响应。例如,一个实现简单的“Hello”的操作可以用作客户端存在通知,并可以开始一系列操作。

服务协定

服务协定将多个相关的操作联系在一起,组成单个功能单元。 WCF协定可以定义服务级设置,如服务的命名空间、对应的回调协定以及其他此类设置。在大多数情况下,协定是通过用您所选的编程语言创建一个接口并将 ServiceContractAttribute 属性应用于该接口来定义的。通过实现该接口,可生成实际的服务代码。

操作协定

#T#操作WCF协定定义参数并返回操作的类型。 在创建定义服务协定的接口时,可以通过将 OperationContractAttribute 属性应用于协定中包含的每个方法定义来表示一个操作协定。可以将操作建模为采用单个消息作为参数并返回单个消息,或者建模为采用一组类型作为参数并返回一个类型。在后一种情况下,系统将确定需要为该操作交换的消息的格式。

消息协定

消息协定描述消息的格式。 例如,它会声明消息元素应包含在消息头中还是包含在消息正文中,应该对消息的何种元素应用何种级别的安全,等等。

错误协定

可以将错误协定与服务操作进行关联,以指示可能返回到调用方的错误。 一个操作可能具有零个或更多个与其相关联的错误。 这些错误是在编程模型中建模为异常的 SOAP 错误。

数据协定

服务使用的数据类型必须在元数据中进行描述,以使其他各方可以与该服务进行交互操作。 数据类型的说明称为数据协定,而这些类型可以在消息的任何部分使用(例如,作为参数或返回类型)。 如果服务仅使用简单类型,则无需显式使用数据协定。

宿主

服务必须承载于某个进程中。 “宿主”是控制服务的生存期的应用程序。 服务可以是自承载的,也可以由现有的宿主进程进行管理。

自承载服务

自承载服务是在开发人员创建的进程应用程序中运行的服务。 开发人员控制服务的生存期、设置服务的属性、打开服务(这会将服务设置为侦听模式)以及关闭服务。

宿主进程

宿主进程是专为承载服务而设计的应用程序。 这些宿主进程包括 Internet 信息服务 (IIS)、Windows 激活服务 (WAS) 和 Windows 服务。 在这些宿主方案中,由宿主控制服务的生存期。 例如,使用 IIS 可以设置包含服务程序集和配置文件的虚拟目录。在收到消息时,IIS 将启动服务并控制服务的生存期。

实例化

服务具有一个实例化模型。 有三种实例化模型:“单个”,在这种模型中,由单个 CLR 对象为所有客户端提供服务;“每个调用”,在这种模型中,将创建一个新的 CLR 对象来处理每个客户端调用;“每个会话”,在这种模型中,将创建一组 CLR 对象,并且为每个独立的会话使用一个对象。 实例化模型的选择取决于应用程序要求和服务的预期使用模式。

责任编辑:田树 来源: 博客
相关推荐

2010-03-01 17:35:29

WCF协定

2009-11-09 14:46:09

WCF集合契约等价

2009-11-06 10:01:07

WCF服务元数据

2009-12-21 18:19:19

WCF地址类型

2009-12-22 18:29:10

WCF适配器

2009-12-21 10:27:52

WCF基本概念

2010-02-25 13:18:36

WCF单向协定

2010-03-02 14:30:41

WCF宿主模式

2009-11-09 13:23:35

WCF协定

2011-07-19 15:49:04

Xcode 文件

2011-07-03 22:48:55

SEO

2010-06-11 09:36:44

MySQL使用前奏

2011-05-31 16:47:47

SEO

2009-11-06 15:25:25

WCF异常

2010-05-17 13:00:56

MySQL修改用户密码

2011-07-18 14:15:55

iPhone iPad GIS

2011-07-04 16:37:10

java

2010-02-23 16:32:29

WCF服务

2011-06-23 10:12:57

SEO网站建设

2011-07-29 11:28:58

iPhone开发
点赞
收藏

51CTO技术栈公众号