WCF小结
WCF总结
1、WCF(原代号为Indigo)是一个用于创建和运行分布式系统的技术集合,使用它能创建安全的、可靠的、跨平台的的分布式解决方案。它的面向服务的编程模型,整合了.Net平台下以往全部的分布式开发技术,是微软在SOA领域推出的一款主打产品。
2、WCF是微软为SOA(Service-Oriented Architecture)而设计的一套完整的技术框架
3、通过WCF技术可以创建服务
跨进程
跨机器
跨网络
4、WCF 提供了创建安全的、可靠的、事务服务、多种协议的统一框架
5、WCF 整合和扩展了现有分布式系统的开发技术,如Microsoft .Net Remoting、Web Services、Web Services Enhancements (WSE)等等。
6、优点:
开放性好,跨平台。
使用80端口穿透防火墙
数据格式简单
7、缺点:
安全性不高
不能方便的跨域访问
不支持双工模式
对于复杂的数据类型无法进行传递,需要使用中
间件技术进行扩展或,自行开发序列号支持
Wcf在该方面做成了很大的改进
8、WCF通信模型
a) 服务端可以提供的服务
i. 指定一个规则
ii. Contract
iii. 协定,契约,合同
b) 协定分类
i. Service Contract ----服务契约
1. 定义了服务的类型,用一个接口或类订阅WCF的Service Contract。
ii. Operation Contract
1. 定义了WCF 服务中提供给外部系统访问的方法
iii. Data Contract ----数据契约
1. 自定义的复杂数据类型
iv. Message Contract ----消息契约
1. 用于控制SOAP消息的规则
v. Fault Contract -----错误契约
1. 用于捕获服务端错误消息
9、宿主(Service Hosting):我们把承载WCF服务的进程称为宿主(Service Hosting)
常见的寄宿方式:
1、使用应用程序(winform 、控制器)开放。
2、使用IIS(Web项目、Web网站、ASP.NET MVC)开发。
3、WCF服务应用程序
10、WCF中的基本概念-ABC
a) A:Address ------地址决定了服务的位置,解决了服务寻址的问题;
i. where -服务在哪里
b) B:Binding -------绑定实现了通信的细节,包括网络传输模式、消息编码,以及其他为实现某种功能(比如安全、可靠传输、事务等)对消息进行的相应处理
i. how -通过什么协议取得服务
c) C:Contract -------契约是对服务操作的抽象,也是对消息交换模式以及消息结构的定义
i. what -定义的服务是什么
10、Binding的作用
a) 指明通过什么方式(协议)连接WCF 服务。
b) 常用协议
11、Address地址的作用
A) 通过一个URI Endpoint告诉潜在的WCF service的调用者如何找到这个WCF Service。
B) 表现形式
12、消息模式
a) 客户端与服务器之间是进行消息通讯的方式
b) 三种主要消息模式
i. 单向 One Way
ii. 请求/答复Request/Reply
iii. 双工Duplex
13、单向模式
a) One Way Call
b) 指的是发送端负责把消息发送给对方并且收到本地发出信息的确认消息之后,就完成交互的方式。
14、特点
a) 未知:消息是否最终到达服务的终节点
b) 已知:消息发送成功
c) 一般只能为返回void 的操作指定单向消息交换
d) Operation Contract Attribute的IsOneWay 属性需要设置为True,默认为false.
15、请求/答复模式
a) Request/Reply
b) 客户端发送一个消息并且接收一个返回消息来完成一次交互
16、特点
a) 请求方(客户端应用程序)发出请求以后,一直等待对方(WCF方)答复。
b) 这是默认的模式
[OperationContract]
void Method();
17、双工模式
a) duplex
b) 客户端和服务端都可以任意地向对方发送消息,而对方也可以以任意的次序来接收消息。
c) 服务端 :
i. 1 需要设计用于回调的服务协定,
ii. 2 将该回调协定的类型分配给ServiceContractAttribute Attribute的CallbackContract property。
d) 客户端:
i. 1 要对该接口实现
18、经典错误
解决方案:把wcf配置文件中的“<serviceDebug includeExceptionDetailInFaults="false" />”修改成“<serviceDebug includeExceptionDetailInFaults="true" />”
Wcf步骤
Demo1、在wcf接口中实现对数据的增删改查
一、引入类库“DBHeleper”
二、连接字符串
三、在接口定义增删改查四种方法
四、实现接口的连接字串
五、实现接口中的增删改查
六、启动项目
WCF小结的更多相关文章
- PHP调用WCF小结
新工作第三周,做了3年多的.Net,突然急转弯做PHP,漂移过弯,速度180迈 由于数据的整合,在项目中不得不使用PHP调用WCF 一头的雾水,网上相关的资料少又少,在phpChina发个帖子,还没有 ...
- WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务
在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...
- WCF使用小结:(1)WCF接收HTTP POST数据的处理方法
在WCF 4.0中,为我们创建Restful API有了更好的支持.通过定义UriTemplate,WebInvoke就可以快速开发API接口. 这里我记录一下HTTP POST数据时要如何接收POS ...
- WCF Data Service 使用小结 (一)—— 了解OData协议
最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...
- WCF Data Service 使用小结 —— 了解OData(一)
最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...
- WCF再学习小结
http://www.cnblogs.com/jillzhang/archive/2010/04/04/1704388.html http://leelei.blog.51cto.com/856755 ...
- IIS8中添加WCF支持几种方法小结[图文]
方法一 最近在做Silverlight,Windows Phone应用移植到Windows 8平台,在IIS8中测试一些传统WCF服务应用,发现IIS8不支持WCF服务svc请求,后来发现IIS8缺少 ...
- WCF服务端开发和客户端引用小结
1.服务端开发 1.1 WCF服务创建方式 创建一个WCF服务,总是会创建一个服务接口和一个服务接口实现.通常根据服务宿主的不同,有两种创建方式. (1)创建WCF应用程序 通过创建WCF服务应用程序 ...
- web service && WCF 学习小结
Web Service和WCF技术都提供了应用程序与应用程序之间的通信.它们都是基于soap消息在客户端和服务端之间进行通信,由于soap消息是一种xml格式,因此传输的数据格式为XML.每次客户端向 ...
随机推荐
- 使用shiro的SimpleHash来生成常用的摘要串
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</ ...
- win10初体验,我的错误代码哪里去了
今天闲着,就把WIN7升级安装成WIN10,感觉这次WIN10的升级方案确实还可以人,可以保留文件和配置升级. 升级完,试了一下宽带连接,发现错误代码没了,像下面的应该就691呢~~~
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。
最近在升级 Visual Studio 2015 Update 3 的过程中,等了很长时间都没一点进展,于是就强行终止了升级程序,但VS也因此出了问题. 后来经过修复,不行,卸载再重装,仍然提示这个错 ...
- android 14.04 64位 adb cannot run program adb
按照网上的说法: Failed to get the adb version: Cannot run program "adb": error=2, 没有那个文件或目录 64位系统 ...
- wamp2.5 不能运行在win2003的解决方法
安装时提示 httpd.exe 不是有效的 win32程序 之后就启动不了,连小icon都不显示了 经查发现 wampserver 2.5用 vc11编译,并使用了他的类库 vc11是不支持 xp和 ...
- js常见怪异
1.隐式转换为布尔:"truthy"和"falsy" 当 JavaScript 需要一个布尔值时(例如:if 语句),任何值都可以被使用. 最终这些值将被转换为 ...
- 【团购活动】接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!
接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!http://bbs.eeworld.com.cn/forum.php?mod=viewthread& ...
- IIS崩溃时自动抓取Dump
背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1.启动 Windows Error R ...
- java攻城狮之路(Android篇)--SQLite
一.Junit 1.怎么使用 在AndroidManifest.xml文件中进行配置, 在manifest借点下配置instrumentation, 在application借点下 ...
- zepto - slice
var ss = ['1', '2', '3', '4', '5', '6']; console.log(ss.slice(2,4));