相关文章:WCF开发指南之构建服务
一、客户端编程
为了调用服务上的操作,客户端首先需要把服务合同导入到客户端的本地描述中。这意味着,该服务需要客户端暴露一个标准方法以检索它的元数据-这是通过让服务暴露一个元数据交换(MEX)端点来实现的。只要服务在宿主上注册至少一个TCP、HTTP或IPC基地址,那么,这个基于WCF的服务就能够自动地暴露一个MEX端点。
如果客户端使用WCF,那么调用操作的普通方法是使用一个代理。这个代理是一个CLR类,它暴露单个描述服务合同的CLR接口。注意,如果该服务支持若干合同,那么客户端需要对于每一种合同类型都创建一个相应代理。代理负责提供与服务的合同相同的操作,而且还提供其它方法来管理代理的生命周期和到服务的连接。该代理完整地封装该服务的每一个方面:服务的位置,服务的实现技术及其运行时刻平台和通讯传输。
你可以使用Visual Studio 2005来导入服务元数据并且生成一个代理。如果服务是自宿主的,那么首先要启动该服务,然后从客户端工程的上下文菜单中选择"Add Service Reference…"。如果服务宿主在IIS或WAS上,那么就不需要预启动该服务了。
有趣的是,如果服务是自宿主在与客户端工程同一个方案中的另一个工程中,那么,你可以在Visual Studio 2005中启动宿主并且仍然添加参考,因为不同于大多数工程设置,这个选项是无法禁止的(见图6)。这会导致调出“Add Service Reference”对话框,你需要在其中提供服务的基地址(或一个基地址和一个MEX URI)以及包含代理的命名空间。
![]() |
| 图6:你可以使用Visual Studio 2005生成一个代理 |
Visual Studio 2005使用SvcUtil.exe命令行工具,并且你可以自己使用它。主要理由是,你可以使用SvcUtil开关所提供的众多的选项。为了直接使用SvcUtil,你可以提供给它MEX地址并且,作为选择,还可以提供一个代理文件名。默认的代理文件名是实现该服务的服务端类的名字。例如,当把服务MyService宿主在IIS中时,简单地运行下列命令行:
|
借助于自宿主,你可以不受限于仅使用HTTP基地址。假定自宿主服务注册这些基地址:
|
然后,启动宿主,则你可以使用任何下列命令之一来生成该代理:
|
该代理类没有对服务实现类的参考,而只参考服务暴露的合同。这个代理可以与一个提供地址和绑定的客户端配置文件一起使用,也可以在没有配置文件的情况下使用。注意,每一个代理实例都准确地指向一个端点,与之交互的端点在构造时刻提供给代理。
二、管理客户端配置
客户端需要知道服务所在地并使用与它的服务相同的绑定;当然,也要以代理的形式导入服务合同。实质上,这与在服务的端点处捕获的信息完全一致。为了反映这一信息,客户端配置文件包含关于目标端点的信息并且甚至使用与宿主相同的模式。
例如,列表6(见本文相应下载源码)显示了与一个服务(其宿主是根据列表2进行配置的)进行交互需要的客户端配置文件。注意,在这个客户端配置文件中的合同类型(和命名空间)是由SvcUtil生成的导入的类型(和命名空间,如果有的话),而不是服务类型和命名空间。该客户端配置文件可以列出与服务支持一样多的端点,并且该客户端可以使用任何其中之一来与该服务交互。列表7(见本文相应下载源码)展示了客户端配置文件-它匹配显示于列表3中的宿主配置文件。
默认地,SvcUtil还自动生成一个客户端配置文件output.config。你可以使用/config开关来指定一个配置文件名:
|
并且,你可以使用/noconfig开关来压缩生成的配置文件:
|
| 共3页: 1 [2] [3] 下一页 | ||
|
|
||||
| · CISSP认证成长之路 · 隐私保护技术探讨 · 华为员工自杀频频拷问.. · FTTx光纤接入 · Windows Server 2008专.. · 开源虚拟化技术Xen · WCF开发基础 · Linux——从菜鸟到高手 |
· 微软出价446亿美元收购.. · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 微软Forefront企业安全.. · 如何优化IT 控制能耗 · 国际文档格式标准开战 · 珊瑚虫QQ作者侵权案开庭 · 802.11n:下一代的无线.. |
|||
|
||||
| · VPN技术 · iSCSI应用与发展 · SQL Server 2008/2005.. · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · 深入了解PGP加密技术 |
· 病毒查杀专题 · VPN技术 · 国际文档格式标准开战 · SSL VPN详细知识 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. · 木马原理与防范 |
|||
|
||||
| · SQL Server 2008/2005.. · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · VPN技术 · 了解统一威胁管理(UTM).. · 网络钓鱼 · ADSL应用面面俱到 · ADSL应用面面俱到 |
|||