【问题标题】:What is "mexHttpBinding"?什么是“mexHttpBinding”?
【发布时间】:2011-01-07 13:50:57
【问题描述】:

什么是 WCF 中的“mexHttpBinding”?何时应优先使用此绑定而不是其他绑定?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    它是一个返回元数据的绑定,因此您可以在客户端构建代理。见here。还有更多here

    【讨论】:

    • 那么 WCF 服务中有两个端点——标准端点和元数据端点?
    • 同一合约可以有任意数量的端点,其中 mexHttpBinding 提供元数据,并且在大多数情况下在生产中被禁用。
    • WCF 服务中可以有许多不同的端点,具有不同类型的绑定和不同的地址。
    • 所以元数据端点是通过地址“mex”来识别的?
    • @CraigS:元数据交换端点是那些具有IMetadataExchange 合同的端点——这是最终的决定因素。它是 WCF 为元数据交换提供的系统契约。地址完全无关,“mex”只是一种常用的最佳实践,但无论如何都不是要求
    【解决方案2】:

    mexHTTPBinding 允许通过 HTTP 使用 WS-MetadataExchange。您不需要它,除非您实施了可能会随着时间而改变的策略,并且您需要使用 UDDI 来发现您的服务,例如

    许多人说创建客户端代理需要它。这不是真的。对于客户端代理,您需要发布 WSDL。您可以通过在服务行为中指定来做到这一点。

    简而言之,你不知道 -> 你不需要它。

    【讨论】:

    【解决方案3】:

    mexHttpBinding 在 Visual Studio 2013 (DEBUG) 的项目中添加新的服务引用时使用,它将使用您的 WebService(提供 mexHttpBinding)。成功添加服务引用后,您可能会禁用 mexHttpBinding。

    当您在 Visual Studio 2013 中创建 WCF 服务库项目时,所有这些都在 App.config 中进行了描述(解决方案 >> 添加新项目 >> Visual C# >> WCF >> WCF 服务库)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 2017-04-21
      • 1970-01-01
      • 2011-04-21
      • 2015-03-21
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      相关资源
      最近更新 更多