WCF 学习总结1 -- 简单实例
从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客户端
运行结果: ? 由于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服务: ? 简单实例-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 事务处理 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |