从webHttpBinding端点获取元数据

时间:2010-06-14 19:14:51

标签: c# wcf wcf-binding

通过引用我的previous question,我想知道如何从客户端应用程序中提取WCF服务的信息,以了解如果服务只公开一个使用webHttpBinding的端点,则会公开哪些方法/类型?

总而言之,在我之前的问题中,我发现使用webHttpBinding的端点不会在生成的WSDL中公开,因为它将是一个JSON端点并且只是不兼容。

2 个答案:

答案 0 :(得分:11)

WebHttpBinding是一个基于REST的绑定 - REST 暴露与SOAP相反的WSDL / XSD等元数据。

此时无法从REST端点提取元数据。正在为建立一个名为WADL (Web Application Description Language)的REST的类似构造进行一些努力 - 但这还远未达到标准化。

目前,使用REST端点,您必须自己弄明白,或者您需要提供服务提供商提供的一些文档,例如:一个静态的HTML页面。

.NET 4确实提供了一定级别的自动生成的帮助页面 - 有关详细信息,请参阅this blog postMSDN docs。但它仍然远不如WSDL / XSD那样正式和机器可解释。

答案 1 :(得分:0)

我想知道为什么REST样本会告诉你暴露MEX端点。它不是必需的,这里是如何干净地删除它:

  1. 从配置文件的服务部分删除MEX端点。

  2. 删除配置文件的服务行为部分中启用服务元数据的行。

  3. 编辑Visual Studio项目(假设它是一个WCF服务库)并删除该行:

    < StartArguments> /客户端: “WcfTestClient.exe” < / StartArguments>

  4. 如果您有其他非休息服务,您将需要留下最后2个部分。您必须在禁用MEX时删除WCF客户端,否则如果它无法枚举项目中的任何服务(无论它们是否具有任何有用的元数据),它将在调试期间进行投诉。