频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

WCF开发指南之客户端开发(3)

作者: 朱先忠编译 出处:华军软件园 2008-03-20 09:05    砖    好    评论   进入论坛
阅读提示:本文讨论了建立和消费简单WCF服务所有要求的内容。然而,WCF还为可靠性、事务、安全和实例激活等提供了极其宝贵的支持,所有这些都依赖于WCF基于拦截的架构。

每一个客户端通道都要做消息的预调用处理。这个链的正确结构和组成在很大程度上依赖于绑定。例如,其中一个通道负责编码该消息(二进制,文本或MTOM),一个通道负责传递安全调用上下文,一个通道负责传播客户端事务,一个通道负责管理可靠的会话,一个通道负责加密消息正文(如果这样配置的话),等等。客户端的最后一个通道是传输通道,它负责把消息由经配置的传输传送到宿主。

在宿主端,该消息也经过一个通道链,从而实现宿主端消息的预调用处理。在宿主端的第一个通道是传输通道,它接收来自传输的消息。随后的通道执行各种任务,例如解密消息正文、译解消息、把传播的事务设置到执行线程、设置安全主管、管理会话和激活服务实例。最后一个通道在宿主端把该消息传递到调度器。由调度器把该消息值的转换成一个堆栈帧并且调用服务实例。图8描述了这一顺序。

图8:WCF架构看上去的样子

在客户端和服务端的拦截都要确保客户端和服务得到它们所要求的运行时刻环境以便正确运行。由服务实例执行该调用并且把控制返回到调度器,由它把返回值和错误信息(如果有的话)转换成一条返回消息。现在,整个过程被颠倒:调度器通过宿主端通道传送消息以执行调用后处理,例如管理事务、撤销实例、编码应答信息、加密它,等等。返回的消息转到传输通道,在此把消息发送到客户端通道以便客户端调用后处理:解密,编码,提交或取消事务,等等。

由代理把返回的消息转换成一个堆栈帧并且把控制返回到客户端。最值得注意的是,在这个架构中的几乎所有的点都提供了可扩展性钩子-你可以为专利性行为提供定制通道,定制实例管理或定制安全。事实上,WCF提供的这些标准工具都是使用相同的可扩展性模型实现的。

六、使用通道

你可以直接使用通道来调用服务上的操作而甚至不必依赖于一个SvcUtil生成的代理。显示于列表10(见本文相应下载源码)中的ChannelFactory<T>类能够使你任意地创建一个代理。你需要提供给它的构造器端点信息-或者是来自配置文件的端点名,或者是绑定和地址对象,或者是一个端点对象。然后,使用CreateChannel()方法以获得一个到代理的参考(顶级通道)并且使用它的方法。最后,关闭该代理或者通过把它强制转换为一个IDisposable接口并且调用其Dispose()方法或强制转换为一个IClientChannel接口并且调用其Close()方法:

ChannelFactory<IMyContract> factory;
//使用默认的站点
factory = new ChannelFactory<IMyContract>("");
IMyContract proxy1 = factory.CreateChannel();
using(proxy1 as IDisposable)
{
proxy1.MyMethod();
}
IMyContract proxy2 = factory.CreateChannel();
proxy2.MyMethod();
IClientChannel clientChannel = proxy2 as IClientChannel;
Debug.Assert(clientChannel != null);
clientChannel.Close();

七、总结

WCF是一种用于构建Windows面向服务的应用程序的SDK。它能够让你使用杰出的CLR编程结构(例如类和接口)来发布和消费服务。这种编程模型是声明性的并且大部分是属性驱动的。WCF基于拦截的架构提供了内置的工具用于管理服务的许多运行时刻方面;并且,从其应用前景来看,它也是构建Windows分布式应用程序的最具生产效率的方式。

WCF的第一个发行版本为开发服务(例如宿主,服务实例管理,异步调用,可靠性,事务管理,非连接性队列调用和安全性)提供了许多有用的工具。在WCF的第二个发行版本中将添加服务发现以及事件出版和订阅。WCF要求.NET 2.0环境并将同Windows Vista一同发行。另外,你可以在Windows XP SP2和Windows Server 2003 SP1环境下使用它。

【责任编辑:碧海蓝天 TEL:(010)68476606】


共3页: 上一页 [1] [2] 3
【内容导航】
专题
WCF开发基础
玩转Vista上的杀毒软件
Windows Vista 初步
体验Visual Studio 2008的魅力
Visual Studio 2005开发基础
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看70832次)
·UML类图详解 (查看64231次)
·UML统一建模语言 (查看34958次)
·C#技术开发指南 (查看33510次)
·C++是垃圾语言?! (查看31761次)
·Java编程开发手册 (1196个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (309个砖)
·.NET开发手册 (240个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (654个好)
·Java基础教程 (574个好)
·.NET开发手册 (271个好)
·PB开发教程 (212个好)
·Delphi开发技术手册 (190个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。