【问题标题】:Get metadata out of a webHttpBinding endpoint从 webHttpBinding 端点获取元数据
【发布时间】:2010-06-14 19:14:50
【问题描述】:

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

总结一下,在我之前的问题中,我了解到使用 webHttpBinding 的端点不会暴露在生成的 WSDL 中,因为它是 JSON 端点并且不兼容。

【问题讨论】:

    标签: c# wcf wcf-binding


    【解决方案1】:

    WebHttpBinding 是基于 REST 的绑定 - 与 SOAP 不同,REST 不会暴露像 WSDL/XSD 这样的元数据。

    目前无法从 REST 端点提取元数据。正在努力为 REST 建立一个类似的构造,称为 WADL (Web Application Description Language) - 但还远未达到标准化。

    目前,对于 REST 端点,您必须自己弄清楚,或者您需要服务提供商提供的一些文档,例如静态 HTML 页面或其他东西。

    .NET 4 确实提供了某种程度的自动生成帮助页面 - 请参阅 this blog postMSDN docs 了解更多信息。但它仍然远没有 WSDL/XSD 那样形式化和机器可解释。

    【讨论】:

      【解决方案2】:

      我想知道为什么 REST 示例会告诉您完全公开 MEX 端点。它不是必需的,这里是如何干净地删除它:

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

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

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

        /client:"WcfTestClient.exe"

      如果您有其他非休息服务,您将希望保留最后 2 个部分。禁用 MEX 时必须删除 WCF 客户端,否则如果无法枚举项目中的任何服务(无论它们是否有任何有用的元数据),它将在调试期间报错。

      【讨论】:

        猜你喜欢
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-10
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 2013-06-08
        相关资源
        最近更新 更多