WCF测试客户端使用哪种协议(WcfTestClient.exe)来获取元数据

时间:2015-11-14 09:54:51

标签: wcf

根据我的理解,可以使用三种类型的绑定来探索元数据:

mexHttpBinding
mexHttpsBinding
mexTcpBinding

WcfTestClient.exe支持所有这些绑定吗?

UPD

根据我的理解,获取元数据的替代方法是获取WSDL信息(发布元数据的旧方法)。

如果EcfTestClient.exe支持上面列出的所有这些绑定,则不需要WSDL。根据我的理解,启用WSDL我需要在<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />的web.config中放置behaviors。如果使用mexHttpBinding,mexHttpsBinding,mexTcpBinding绑定检索元数据,则不需要这样做。如果我错了,请纠正我。在这种情况下,WcfTestClient.exe会找到元数据。

如果我为httpGetEnabledhttpsGetEnabled WcfTestClient.exe做错,则无法获取服务信息:

Error: Cannot obtain Metadata from http://localhost:35168/mySrv.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address.

看起来WcfTestClient.exe是从WSDL获取信息而不是从绑定mexHttpBinding , mexHttpsBinding , mexTcpBinding获取信息?

1 个答案:

答案 0 :(得分:0)

嗯,基于MSDN,WCFTestClient支持SvcUtil支持的所有绑定。现在,如果你看下面的MSDN摘录:

Svcutil同时发出以下元数据请求以检索元数据。

MEX(WS-Transfer)请求到提供的地址

MEX请求附加/ mex的提供地址

DISCO请求(使用ASMX的DiscoveryClientProtocol)到提供的地址。

看起来可以安全地假设WcfTestClient支持所有三个元数据下载。

MSDN WCFTestClient

MSDN SvcUtil