一、引言
我们也可以通过配置元数据交换终结点的方式来启用元数据交换。标准的元数据交换终结点的配置结构如下:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
和普通的终结点类似,它也包含3个主要元素:契约(contract)、绑定(binding)和地址(address)。Address的配置和普通终结点的地址配置类似,可以配置为空、相对uri和带基地址的uri。Binding类型为固定的几个类型,常见的有mexHttpBinding、mexTcpBinding等等。Contract固定为IMetadataExchange。该契约接口已经由WCF自动为我们实现,但是我们在配置文件中必须为服务明确的指定该行为,否则启动服务时将会报错,如下所示:
<
behaviors
>
<
serviceBehaviors
>
<
behavior
name
=
"mex"
>
<
serviceMetadata
/>
<
serviceDebug
includeExceptionDetailInFaults
=
"false"
/>
</
behavior
>
</
serviceBehaviors
>
</
behaviors
>
<
services
>
<
service
name
=
"WindowsFormsApplication11.Service1"
behaviorConfiguration
=
"mex"
>
...
<
endpoint
address
=
"mex"
binding
=
"mexHttpBinding"
contract
=
"IMetadataExchange"
/>
<
host
>
<
baseAddresses
>
<
add
baseAddress
=
"http://localhost:8732/Design_Time_Addresses/WindowsFormsApplication11/Service1/"
/>
<
add
baseAddress
=
"net.tcp://localhost:8001/Service1/"
/>
</
baseAddresses
>
</
host
>
</
service
>
|
我们必须为服务指定定义了serviceMetadata标签的behavior,这样才是引入WCF自动实现的IMetadataExchange接口。否则,启动服务时将会报错。
二、添加默认的元数据终结点