了解httpGetEnabled和Mex绑定

时间:2011-01-17 17:26:04

标签: .net wcf wsdl

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

有了这个,我的理解是该服务不允许下载WSDL。但是,该服务的现有客户端可以顺利运行。

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

  1. 为服务创建行为。
  2. 在serviceMetadata元素中,创建httpGetEnabled属性并将其设置为true。
  3. 创建mex绑定端点。即
  4. <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    现在让我回答我的问题。

    当我只是将httpGetEnabled =“true”时,我能够下载WSDL。 我在这里看不到mex端点的重要性。

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

1 个答案:

答案 0 :(得分:4)

如果要使用WS-MetadataExchange而不是WSDL来获取服务元数据,则Mex端点才会变得非常重要。您可以启用其中一个或两个。

AFAIK,svcutil.exe可以使用WSDL或mex,所以不用担心;但是你的客户可能只支持其中一个。