WCF介绍
来源:互联网 发布:防止微信被监控软件 编辑:程序博客网 时间:2024/06/07 02:46
一:WCF
在.net平台下,有很多的分布式技术.....
1> WebService 基于Hhttp协议的Soap模式
2>Remoting 也是一种分布是架构技术,常常用于Tcp模式的二进制传输
3>MSMQ 这是一种分布式的离线技术(即:消息队列),用于业务解耦
现如今就是现如今的的大概三种分布式技术,分布式太多了,我们就需要整合下,面对三面三种需求,这时候WCF就应运而生了。
WCF可以认为是读上面这三种技术的再次封装。
二:为什么要学习WCF
WCF采用SOAP通讯协议 (SOAP消息包括信封和正文)
三:快速搭建一个WCF程序
1>ABC的概念
A表示Address 服务的地址,就像我们访问Web的时候,需要一个http地址。
B表示Binding 就是说我们Client和Service的通道,比如说我们访问web,我们使用http通道
那么WCF支持哪些通道(协议)呢?
1. BasicHttpBinding 对应WebService
2.NetTcpBinding 对应Remoting
3.NetMSMQBinding 对应 MSMQ
C表示Contract 契约
所谓契约就是我们定义的接口是什么样的,方法名是什么,采用什么参数,返回值是什么
四:创建一个WCF项目
创建一个控制台应用程序,然后再里面添加一个WCF服务,这个WCF服务的名称我们就取名:MyService,这时候项目中自动给我们生产两个文件,一个是MyService类,一个是IMyService 接口,这个接口就是我们所说的契约。
同时在App.Config文件中会自动给我们添加一系些节点
<configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <services> <service name="WCFServices.MyService"> <!--如果这个address地址为空,那么默认就使用host节点下的baseAddresses节点配置的地址--> <!--bingding我们一般选择:basicHttpBinding,netTcpBinding,netMsmqBinding--> <!--contract表示契约,值是这个服务使用的那个接口名称--> <endpoint address="" binding="basicHttpBinding" contract="WCFServices.IMyService"> <!-- 部署时,应删除或替换下列标识元素,以反映在其下运行部署服务的标识。删除之后,WCF 将自动推导相应标识。--> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <!--这个地址我们在可以谁便写,只要在客户端引用服务的时候,客户端配置文件中的endpoint填写与之一样的地址就可以了(特别注意,启用这个服务的时候,一定要以管理员的身份启动)--> <add baseAddress="http://localhost:1234/WCFServices/MyService/" /> </baseAddresses> </host> </service> </services> </system.serviceModel></configuration>
启动我们的服务:运行项目(如果直接去bin目录下的Debug目录下打开WCFServices.exe文件的形式,一定记得要以管理员身份运行打开)
namespace WCFServices{ class Program { static void Main(string[] args) { //为什么演示方便,这里我们就以控制台应用程序来作为WCF的宿主(注:WCF的宿主可以是IIS,也可以是控制台应用程序,也可以是WinForm) System.ServiceModel.ServiceHost host = new System.ServiceModel.ServiceHost(typeof(MyService)); host.Open(); Console.WriteLine("WCF服务启动成功!"); Console.ReadKey(); } }}
五:如何使用这个服务
创建一个WebClient控制台应用程序,添加服务引用,如果无法发现服务,就直接去WCF服务的App.config配置文件中去拷贝baseAddress的值http://localhost:1234/WCFServices/MyService/ 填上,然后点击“转到” 就可以了。
namespace WebClient{ class Program { static void Main(string[] args) { WCFSR.MyServiceClient client = new WCFSR.MyServiceClient(); var msg = client.DoWork(); Console.Write(msg); //输出:Hello World Console.ReadKey(); } }}
- WCF介绍
- WCF 介绍(一)
- WCF 介绍(二)
- WCF 介绍(三)
- WCF 介绍(四)
- wcf的简单介绍
- wcf契约具体介绍
- WCF简要介绍
- WCF简要介绍
- WCF基本介绍
- WCF详细介绍
- .net wcf 概念介绍
- 介绍VS2008中的WCF工具
- WCF入门教程1——WCF简要介绍
- Windows Communication Foundation(WCF)介绍
- Silverlight+WCF 新手实例 象棋 介绍(一)
- Silverlight+WCF 新手实例 象棋 介绍(一)
- WCF共享端口正确开启方法介绍
- FFMPEG 命令操作
- 匿名内部类
- 低风险投资(六、少赚也是亏)
- Cannot change version of project facet Dynamic web module to 2.5
- session的工作原理
- WCF介绍
- spark deploying的官方文档部分翻译
- 使用Spring连接MySql数据库
- 【翻译】App Architecture (Android架构组件) 指南
- office365清除oem信息
- 【LeetNode2-1-1】Remove duplicates from sorted array I--C++源代码(VS2015)
- openwrt编译x86固件 VMware安装镜像
- 最简单的K近邻算法 KNN python实现
- centos 7.4 yum 安装 nginx