WCF基础二
1:地址 。 WCf 的每一个服务都有一个唯一地址,地址包括传输协议和服务位置。
- HTTP:采用http\https协议进行传输,默认端口为80.
- TCP:采用ne.tcp协议进行传输,默认端口为808.
- MSMQ: 采用net.msmq进行传输,使用Windows的MSMQ机制,必须指定队列名,如果是处理私有队列,则必须指定队列类型。
- PEET NetWord:采用net.p2p进行传输,采用windows的对等网进行传输。
- IPC,采用net.pipe进行传输。
2:绑定。绑定将通信模式与交互方式直接的组合进行规范,将这些通信特征合理地组合在一起。
- 基本绑定(BasicHttpBinding),WCF默认的绑定方式。经常使用。将WCF 服务公开为WEB服务。
- TCP绑定(NetTcpBinding)使用TCP协议通信,支持多种特性,包括可靠性、事务性、安全性及WCF之间通信的优化,缺点是客户端必须使用WCF。
- IPC绑定(NetNamedPipeBinding)使用命名管道为同一机器的通信进行传输,支持的特性与TCP绑定类似,是性能和安全性最佳的绑定。
- Web服务绑定(WSHttpBinding)使用HTTP或HTTPS进行传输。
- WS双向绑定(WSDualHttpBinding)支持双向绑定。
- MSMQ绑定(NetMsmqBinding)使用MSMQ进行传输。
常用绑定的传输协议与编码格式如下:
| 名字 | 传输协议 | 编码格式 | 互操作性 |
| BasicHttpBinding | HTTP/HTTPS | Text,MTOM | yes |
| NetTcpBinding | TCP | Binary | no |
| NetNamedPipeBinding | IPC | Binary | no |
| WSHttpBinding | HTTP/HTTPS | Text,MTOM | yes |
| WSDualHttpBinding | HTTP | Text,MTOM | no |
| NetMsmqBinding | MSMQ | Binary | no |
3:契约。WCF的所有服务都公开为契约,契约与平台无关,是描述服务功能的标准方式。
- 服务契约:客户端能够执行的服务操作
- 数据契约:交互数据类型
- 错误契约:抛出的错误信息
- 消息契约:允许服务与消息进行交互,不常使用,会增加代码量。
4:终结点。是服务进行通讯的唯一手段(方式)。终结点是用来发送和接收消息的构造,终结点是真正意义上的接口,它包含了一个对象接口所需的全部信息
5:元数据。服务的元数据描述服务的特征,外部实体需要了解这些特征以便与该服务进行通信。服务的元数据包括XML、架构文档(用于定义服务的数据协定)和WSDL文档(用于描述服务的方法)。
6:宿主。WCF服务类不能凭空存在,每个WCF服务类必须托管在某个宿主进程中。单个宿主进程可以托管多个服务,而相同的服务类型也可以托管在多个宿主进程中,如果服务与客户端驻留在相同的进程中,则称为进程内托管。
- Web站点
- Windows窗体应用程序
- Windows服务
- Windows激活服务(WAS)
7:代理。WCF不允许客户端直接与服务交互,客户端使用代理将调用转发给服务。(中介)
WCF基础二的更多相关文章
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
在上一篇WCF基础教程之开篇:创建.测试和调用WCF博客中,我们简单的介绍了如何创建一个WCF服务并调用这个服务.其实,上一篇博客主要是为了今天这篇博客做铺垫,考虑到网上大多数WCF教程都是从基础讲起 ...
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
原文:WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构 细算起来,已经有好几个月没有真正的写过文章了.近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析>的写作,一直 ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Bootstrap <基础二十九>面板(Panels)
Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...
- Bootstrap <基础二十八>列表组
列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...
- Bootstrap<基础二十七> 多媒体对象(Media Object)
Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的 ...
- Bootstrap <基础二十六>进度条
Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...
- Bootstrap <基础二十五>警告(Alerts)
警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...
- Bootstrap<基础二十四> 缩略图
Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...
随机推荐
- Codeforces --- 982C Cut 'em all! DFS加贪心
题目链接: https://cn.vjudge.net/problem/1576783/origin 输入输出: ExamplesinputCopy42 44 13 1outputCopy1input ...
- Fiddler 教程---小坦克
协议. Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具 Fiddler的工作原理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:888 ...
- jmeter 使用问题
问题1:导入脚本失败,提示 解决:没有安装JMemter plugins manager插件,具体安装参考http://www.cnblogs.com/cxx1/p/7883820.html,第二步.
- 王燕 201771010126《面向对象程序设计(java)》第一周学习总结
王燕 201771010126<面向对象程序设计(java)>第一周学习总结 王燕 201771010126<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部 ...
- 1. js数据类型_对象_函数_内存
1. js数据类型有哪些? 基本(值)类型 Number ---- 任意数值 String ---- 任意字符串 Boolean ---- true/false undefined ---- unde ...
- apt下载open-jdk8报错add-apt-repository: command not found
今天下载jdk8报错 在Ubuntu下,时不时会有这个错误的. add-apt-repository: command not found sudo apt-get install software- ...
- python递归
一.递归 (1)递归就是函数自己调用自己的过程: (2)使用递归时,需要注意递归的出口,明确递归的终止条件. #计算n的阶乘 def fun(n): if n==1: return 1 else: r ...
- discuz 修改亮剑积分商城2.91模板(在常用设置中添加商场首页排序方式的背景颜色)
在应用 -> 积分商城 -> 常用设置 中添加 商场首页排序方式 的背景颜色修改功能 步骤: 1.找到并打开此页面对应的模板source\plugin\aljsc\template\set ...
- 接线端子VH,CH,XH
- Windows下搭建kafka运行环境
完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS 在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...