WCF开发工具已经出现,就被大多数开发人员所关注,它独特的功能特点也使其立即成为了开发领域中一个重要的应用工具。在这里我们就一起来了解一下有关WCF元数据交换的相关操作技巧。我们的都知道服务有两种方案可以发布自己的元数据。一种是基于HTTP-GET协议提供元数据,另一种则是后面将要讨论的使用专门的终结点的方式。#t#
WCF能够为服务自动提供基于HTTP-GET 的元数据,但需要显式地添加服务行为(Behavior)以支持这一功能。本书后面的章节会介绍行为的相关知识。现在,我们只需要知道行为属于服务的本地特性,例如是否需要基于HTTP-GET交换元数据,就是一种服务行为。我们可以通过编程方式或管理方式添加行为。演示的宿主应用程序的配置文件中,所有引用了定制配置节的托管服务都支持基于HTTP-GET协议实现元数据交换。为了使用HTTP-GET,客户端使用的地址需要注册服务的HTTP基地址。我们也可以在行为中指定一个外部URL以达到同样的目的。
使用配制文件启用WCF元数据交换行为
- < system.serviceModel>
- < services>
- < service name = "MyService" behaviorConfiguration = "MEXGET">
- < host>
- < baseAddresses>
- < add baseAddress = "http://localhost:8000/"/>
- < /baseAddresses>
- < /host>
- ...
- < /service>
- < service name = "MyOtherService" behaviorConfiguration = "MEXGET">
- < host>
- < baseAddresses>
- < add baseAddress = "http://localhost:8001/"/>
- < /baseAddresses>
- < /host>
- ...
- < /service>
- < /services>
- < behaviors>
- < serviceBehaviors>
- < behavior name = "MEXGET">
- < serviceMetadata httpGetEnabled = "true"/>
- < /behavior>
- < /serviceBehaviors>
- < /behaviors>
- < /system.serviceModel>
一旦启用了基于HTTP-GET的WCF元数据交换,在浏览器中就可以通过HTTP基地址(如果存在)进行访问。如果一切正确,就会获得一个确认页面,如图所示,告知开发者已经成功托管了服务。确认页面与IIS托管无关,即使使用自托管,我们也可以使用浏览器定位服务地址。