WCF学习笔记一(概述)
WCF Windows Communication Foundation 分布式通信框架。WCF是对现有分布式通信技术的整合。是各种分布式计算的集大成者。主要整合技术如下图:
WCF的服务不能孤立的存在,需要寄宿于一个运行着的进程中,我们把承载WCF服务的进程称为宿主,为服务指定的宿主的过程称为服务寄宿。自我寄宿和IIS寄宿两种服务寄宿方式。如下图:
从功能上讲,服务契约抽象了服务提供的所有操作;而站在消息交换的角度来看,服务契约则定义了基于服务调用的消息交换过程中请求消息和回复消息的结构。通过应用ServiceContractAttribute特性将接口定义成服务契约之后,接口的方法并不能自动成为服务操作。WCF采用的是显示选择(Explicit Opt-in)的策略,意味着我们需要在相应的操作方法上显示地应用OperationContractAttribute特性。WCF服务需要依赖一个运行着的宿主进程,服务寄宿就是为了服务指定一个宿主的过程。WCF采用基于终结点的通信手段。终结点由地址、绑定、契约三要素组成。简称 A B C.
地址:地址决定了服务的位置,解决了服务寻址的问题。
绑定:绑定实现了通信的所有细节,包括网络传输、消息编码,以及其他为实现某种功能(比如传输安全、可靠消息传输、事物等)对消息进行的相应处理。WCF中具有一些列的系统定义绑定,比如BasicHttpBinding、WSHttpBinding和NetTcpBinding等。
契约:契约是对服务操作的抽象,也是对消息交换模式及消息结构的定义。
当通过Visual Studio添加服务引用的时候,Visual Studio在内部帮助我们实现元数据的获取,并借助这些元数据通过代码生成工具(SvcUtil.ex)自动生成用于服务调用的服务代理相关代码和相应的配置。
服务寄宿的目的就是开启一个进程,为WCF提供一个运行的环境,并未服务添加一个或多个终结点,使之暴露给潜在的服务消费者。服务被成功寄宿之后,服务端便开始了服务调用求情的监听。
WCF采用基于契约的服务调用方法。Visual Studio在进行服务引用添加的过程中,会在客户端创建一个与服务端等效的服务契约接口。由于服务端和客户端都在同一个解决方案中,因此完全可以让服务端和客户端引用相同的契约。
终结点是WCF进行通信的唯一手段,ChannelFactory<Tchannel>本质上是通过指定的终结点创建用于进行服务调用的服务代理。
示例的创建步骤我就不具体描述了,可以参考 http://www.cnblogs.com/artech/archive/2007/02/26/656901.html。
示例的源码:http://download.csdn.net/detail/ybealq/8256967
WCF学习笔记一(概述)的更多相关文章
- WCF学习笔记之事务编程
WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...
- WCF学习笔记之传输安全
WCF学习笔记之传输安全 最近学习[WCF全面解析]下册的知识,针对传输安全的内容做一个简单的记录,这边只是简单的记录一些要点:本文的内容均来自[WCF全面解析]下册: WCF的传输安全主要涉及认证. ...
- WCF 学习笔记之异常处理
WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...
- WCF 学习笔记之双工实现
WCF 学习笔记之双工实现 其中 Client 和Service为控制台程序 Service.Interface为类库 首先了解契约Interface两个接口 using System.Service ...
- Struts2 学习笔记(概述)
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...
- WCF学习笔记(2)——使用IIS承载WCF服务
通过前面的笔记我们知道WCF服务是不能独立存在,必须“寄宿”于其他的应用程序中,承载WCF服务的应用程序我们称之为“宿主”.WCF的多种可选宿主,其中比较常见的就是承载于IIS服务中,在这里我们来学习 ...
- μCos-ii学习笔记1_概述
一.μCos-ii _概述 网上关于μCosii的文章多不胜数,本人学习的过程中也参考了很多人的理解和想法,看的是卢有亮老师的<嵌入式实时操作系统-μC/OS原理与实践>(第2版),同时也 ...
- WCF学习笔记1--发布使用配置文件的服务
关于WCF的入门网上资料很多,可以参考蒋金楠老师的博客http://www.cnblogs.com/artech/archive/2007/02/26/656901.html,我是从这篇博客开始学习的 ...
- WCF学习笔记(1)——Hello WCF
1.什么是WCF Windows Communication Foundation(WCF)是一个面向服务(SOA)的通讯框架,作为.NET Framework 3.0的重要组成部分于2006年正式发 ...
随机推荐
- wcf异常汇总
1.确保客户端可以接收到服务端的异常 2.部署wcf出错,http错误404.3 3.无法自动调试 未能调试远程过程.这通常说明未在服务器上启用调试 WCF 托管在IIS上 4.ChannelFact ...
- hadoop2.2编程:DFS API 操作
1. Reading data from a hadoop URL 说明:想要让java从hadoop的dfs里读取数据,则java 必须能够识别hadoop hdfs URL schema, 因此我 ...
- POJ_1065_Wooden_Sticks_(动态规划,LIS+鸽笼原理)
描述 http://poj.org/problem?id=1065 木棍有重量 w 和长度 l 两种属性,要使 l 和 w 同时单调不降,否则切割机器就要停一次,问最少停多少次(开始时停一次). Wo ...
- 修改mysql 数据库密码
第1种︰使用 mysqladmin命令 shell>mysqladmin -u root password new_password 如果忘记了MySQL的root密码,可以用以下方法重新设置: ...
- (转载)在mysql中,column 'id' in field list is ambiguous
(转载)http://blog.chinaunix.net/uid-20665047-id-3137284.html column 'id' in field list is ambiguous 这个 ...
- MonkeyRunner执行Python脚本实例——发送短信增强版
很久之前就写好的了,准备写个自动执行Monkey的脚本时才想到去找它,还是写在博客里找起来方便. 这次更新了批处理自动连接设备后执行Py脚本,结构如下图: 其中shotscreen为存放截图文件夹,s ...
- JavaScript高级程序设计60.pdf
错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...
- 《使用wxWidgets进行跨平台程序开发》chap02——一个简单的应用程序
// Name: minimal.cpp // Purpose: Minimal wxWidgets sample // Author: Julian Smart #include "wx/ ...
- usaco 土地并购 && hdu 玩具装箱
土地并购: Description 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长乘以最大 ...
- 缺少HTML Doctype造成的样式问题
很简单的一个登陆界面: 代码: <html> <head> <style type="text/css"> form span { displa ...