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

在 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,所以不用担心;但您的客户可能只支持其中之一。

https://stackoverflow.com/questions/4715982/

相关文章:

jsp - 纯文本 JSP 响应

internet-explorer - 是否可以检测用户何时切换标签?

svn - 我可以 svn merge 而不总是指定第一个修订版吗?

entity-framework-4 - 如何首先在 EF4 代码中将表拆分为多种类型?

date - VB6 儒略日期字符串到日期对象

apache - 如何让邮件发送到特定地址触发 Web 服务器上的操作?

oop - 单例类 : static properties or non-static proper

visual-studio-2010 - 微软内部版本 : Access compiler sett

wpf - 链接内容不适用于资源词典

regex - Dreamweaver 用正则表达式替换