.net - 了解 httpGetEnabled 和 Mex 绑定(bind)

标签 .net wcf wsdl

在 WCF 服务中,我删除了默认的 Mex 绑定(bind),并将默认服务行为中的 httpGetEnabled 属性设置为 false。

根据我的理解,该服务不允许下载 WSDL。但是,该服务的现有客户端可以正常工作。

现在,当我在 Internet Explorer 中浏览 .svc 时,它会提供 3 个建议来帮助我查看 .svc 文件的结构。

  1. 为服务创建行为。
  2. 在 serviceMetadata 元素中,创建 httpGetEnabled 属性并将其设置为 true。
  3. 创建一个 mex 绑定(bind)端点。即

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

现在让我回答我的问题。

当我设置 httpGetEnabled="true"时,我就可以下载 WSDL。 我在这里看不到 mex 端点的意义。

这里mex端点的真正意义是什么?当 httpGetEnabled 给我下载 WSDL 的选项时,创建 mex 端点的必要性是什么?

最佳答案

只有当您想使用 WS-MetadataExchange 而不是 WSDL 来获取服务元数据时,Mex 端点才会变得重要。您可以启用一个或另一个,或同时启用两个。

据我所知,svcutil.exe 可以使用 WSDL 或 mex,所以不用担心;但您的客户可能只支持其中之一。

关于.net - 了解 httpGetEnabled 和 Mex 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715982/

相关文章:

wcf - Azure辅助角色中的外部HTTP端点可以吗?

JAXB 简化插件与 *.xjb

java - 本地 WSDL 的 FileNotFoundException

.net - 从 WSDL 文件逆向工程 Web 服务接口(interface)的最佳方法?

c# - 无法将 key 文件添加到 X509Certificate2

wcf - 将 WCF 调用转换为异步 WCF 调用的最佳实践

.net - 动态表行未通过 jquery ajax 调用更新

c# - WCF 服务中的 Prism 模块系统?

c# - 禁止覆盖派生类中的方法

c# - 如何从 C# 线程获取成员函数作为该线程参数的对象?