从VS2005推出WCF以来,WCF逐步取代了Remoting, WebService成为.NET上分布式程序的主要技术。WCF统一的模型整合了以往的 WebService、Remoting、MSMQ 等技术,让分布式开发变得更加简单,方便,快捷。
(上图选自《Programming WCF Services》)
WCF基本概念(ABC): 1.地址(Address):决定服务的地址;2.绑定(Binding):决定服务的细节;3.契约(Contract):服务的定义(抽象),决定消息结构的定义。
WCF的发布:WCF服务的发布可以有几种形式: IIS, Windows Service, Self-Host(可以是Console程序也可以是Winform程序)。
WCF的工具: Windows Communication Foundation 工具
简单实例-1: 内置AppDomain (无配置)
1. Service1.cs
2. Program.cs
如图所示:
简单实例-2: 创建 Console Self-Host
WcfServiceLib - 服务契约的实现; *ConsoleHost工程 – Wcf宿主; *ConsoleClient工程 - Wcf客户端
- 创建WcfServiceLib工程(选WCF Service Library工程模板: VS为我们自动添加一个IService1.cs和Service1.cs)
- Host工程里引用WcfServiceLib工程
- 将WcfServiceLib里App.config移动到ConsoleHost工程里,删掉Lib工程里的App.config
- Host工程的Program.cs添加下面的代码,右击Builder工程
- 运行 ConsoleHost工程 bin/debug 下面的 exe(这一步是为了生成客户端代理,需要启动Host)
- 在Client工程里通过添加 Service References,生成客户端Proxy,关闭exe
- 在Client工程的Program.cs里添加如下代码。
- F5 运行Solution里的Host, 再右击Client工程选Debug的Start new instance方式,运行Client
运行结果:
由于ServiceHost实例是被创建在应用程序域中,必须保证宿主进程在调用服务期间不会被关闭,因此利用Console.Read()来阻塞进程,以使得控制台应用程序能够一直运行,直到人为关闭应用程序。
简单实例-3: 创建 Winform Self-Host
Winform的Self-Host和ConsoleHost类似,先添加 WcfServiceLib 工程引用,将 WcfServiceLib 里的App.config 移到 Winform 工程里。加上启动Service的代码就OK了!
在Winform中,不要使用 using(...) 代码块,这将导致在Button方法结束后自动销毁Host对象而关闭服务。
简单实例-4: 创建 Windows Service Host
Windows Services宿主便于管理者方便地启动或停止服务,且在服务出现故障之后,能够重新启动服务。还可以通过Service Control Manager(服务控制管理器),将服务设置为自动启动方式,省去了服务的管理工作。此外,Windows Services自身还提供了一定的安全性以及检测机制和日志机制。
1. 创建Windows Service工程
2. 引用 WcfServiceLib 工程,添加 App.config (和前面Host添加的App.config一样)
3. 重写WindowsService类的 OnStart 和 OnStop 方法
4. 创建Service的安装类:在WindowsService 类的设计界面上右击选择 [Add Installer]
修改 serviceProcessInstaller 的 Account 属性 (默认为User) 改为 LocalSystem
通过在Visual Studio的 [Command Prompt] (命令行)模式下通过 InstallUtil 工具安装 Windows服务:
InstallUtil [绝对路径]/WCFStudy2WindowsServiceHost.exe (安装成功之后,使用Services.msc查看服务)
简单实例-5: 创建 IIS Host
最简单的就是直接创建一个 WCF Service Application 就OK了。
以上所有工程的关系图如下:
最后,整理了一些WCF 相关优秀Blog:
本系列链接:
WCF 学习总结1 -- 简单实例
WCF 学习总结2 -- 配置WCF
WCF 学习总结3 -- 实例模式
WCF 学习总结4 -- 用Duplex实现消息广播
WCF 学习总结5 -- 消息拦截实现用户名验证
WCF 学习总结6 -- WCF参数与返回值
WCF 学习总结7 -- 流模式实现文件上传
WCF 学习总结8 –- WCF 事务处理
分享到:
相关推荐
WCF简单实例--WCF简单实例--WCF简单实例--WCF简单实例--WCF简单实例--WCF简单实例--
WCF 实例源代码------聊天室 WCF 实例源代码------聊天室
wcf开发:WCF培训上课实例-带有宿主的WCF程序。WCF培训上课实例-带有宿主的WCF程序WCF培训上课实例-带有宿主的WCF程序WCF培训上课实例-带有宿主的WCF程序
wcf实例化-单调服务模式,言简意赅,很容易理解。就是现在积分没发控制,不然1分即可。很简单的代码
WCF服务编程10-2WCF服务编程10-2WCF服务编程10-2WCF服务编程10-2WCF服务编程10-2WCF服务编程10-2
WCF服务编程04-05WCF服务编程04-05WCF服务编程04-05WCF服务编程04-05
wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例wcf经典实例
WCF代码1-简单的WCF程序WCF代码1-简单的WCF程序
WCF实例--Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理...
11.再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯
《WCF 证书移除工具 - WCFMultiCersRemover》 blog文章源码 WCFMultiCersRemover 提供的功能 ...1、移除WCF所有证书 2、移除所有同名证书 3、移除指定证书名的所有证书 4、移除指定证书名同名证书
WCF实例,多种部署方式,示例代码,实例教程,
基于C#技术 wcf的应用实例 分控制台宿主和Windows服务宿主两种模式
WCF 22个实例1 wcf 收藏,好东西
这是一个Ext框架,我对此框架很感兴趣。。。特别想了解一下。。。
WCF实例管理的概述,WCF服务实例激活类型三种方式概述和单例服务的完整代码。
WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例WCF实例
WCF传输使用实例WCF传输使用实例WCF传输使用实例
wcf 实例 代码 简单实例,方面上手 简单实例,方面上手
Artech的博客文章,我把它转成chm的格式给大家分享