博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF学习笔记之基础知识梳理(1)
阅读量:6124 次
发布时间:2019-06-21

本文共 1548 字,大约阅读时间需要 5 分钟。

比较重要的概念,学习WCF必须掌握的基础知识。

1、契约

任何一个分布式应用程序,它之所以能够互相传递消息,都是事先制定好数据交换规则的,这个规则正是交换数据的双方(比如服务器端和客户端)能彼此理解对方的依据,WCF 作为分布式开发技术的一种,同样具有这样一种特性。而在 WCF 中制定的的规则就被称之为契约(Contract) ,它是 WCF 的消息标准,是任何一个 WCF 程序不可或缺的一部分。

WCF有四种契约:

(1)用于定义服务操作的服务契约:Service Contract,服务契约描述了客户端能够执行的服务操作。这种级别的契约又包括两种:ServiceContract 和 OperationContract  。ServiceContract 用于类或者结构上,用于指示 WCF 此类或者结构能够被远程调用,而 OperationContract 用于类中的方法(Method)上,用于指示 WCF 该方法可被远程调用。

(2)用于自定义数据结构的数据契约:Data Contract ,数据契约定义了与服务交互的数据类型。数据契约也分为两种:DataContract 和 DataMember。 DataContract 用于类或者结构上,指示 WCF 此类或者结构能够被序列化并传输,而 DataMember 只能用在类或者结构的属性(Property)或者字段(Field)上,指示 WCF 该属性或者字段能够被序列化传输。

(3)用于自定错误异常的异常契约:Fault Contract,错误契约定义了服务抛出的错误,以及服务处理错误和传递错误到客户端的方式。我们可以自定义异常消息的格式,将我们关心的消息放到错误消息中传递给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上 FaultContract,并将异常信息指示返回为自定义格式。

(4)用于控制消息格式的消息契约:Message Contract  ,消息契约允许服务直接与消息交互。消息契约可以是类型化的,也可以是非类型化的。如果系统要求互操作性,或者遵循已有消息格式,那么消息契约会非常有用。它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。

2、终结点

终结点有地址、绑定、协定和行为组成。

(1)地址:地址唯一地标识终结点,并告诉服务的潜在客户其所在的位置。 在 WCF 对象模型中,地址由

EndpointAddress 类表示。 一个 EndpointAddress 类包含:

  • 一个表示服务地址的 Uri 属性。
  • 一个表示服务安全标识和可选消息头集合的 Identity 属性。 可选消息头用于提供其他更多详细寻址
  • 信息来标识终结点或与终结点交互。

(2)绑定:绑定指定如何与终结点进行通信。 这包括:

  • 要使用的传输协议(例如,TCP 或 HTTP)。
  • 要用于消息的编码(例如,文本或二进制)。
  • 必需的安全要求(例如,SSL 或 SOAP 消息安全)。

(3)协定:协定概述了终结点向客户端公开的功能。 协定指定:

  • 客户端可以调用的操作。
  • 消息的窗体。
  • 调用操作所需的输入参数或数据的类型。
  • 客户端可以预期的处理或响应消息的类型。

(4)行为:可以使用终结点行为来自定义服务终结点的本地行为。 终结点行为是通过参与构建 WCF 运行库

的过程来实现这一点的。 终结点行为的一个示例是 ListenUri 属性,可以利用该属性指定与 SOAP 或

Web 服务描述语言 (WSDL) 地址不同的侦听地址。

转载于:https://www.cnblogs.com/dream844/archive/2013/03/07/2948544.html

你可能感兴趣的文章
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
【FJOI2015】金币换位问题
查看>>
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>