关于WSDL vs MEX的所有内容?

时间:2010-05-04 06:43:19

标签: wcf wsdl

即使如此,我也无法打开元数据网址http://localhost:8082/Tasks/mex 我在配置文件中添加了mexHttpBinding。我可以在浏览器中查看此MEX端点吗?

配置文件如下所示:

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

问题:

  • MEX与WSDL不同吗?如果没有,那么为什么我们需要一个超过WSDL的MEX端点?
  • 在WSDL中,我看到缺少WSDL类型信息。这是默认的吗?我可以查看WSDL中的类型信息吗?

3 个答案:

答案 0 :(得分:13)

查看serviceMetadata以获取有关WCF配置文件的更多信息。

为了回答您的问题,MEX是用于呈现服务描述信息的更新的W3C标准; WSDL是以前的方法。如果您需要允许较旧的客户端访问您的服务描述信息,您可能必须通过WSDL公开该信息。

将服务描述信息公开为WSDL(httpGetEnabled)的信息也在上面提供的链接中。

另外,尝试使用wcftestclient.exe访问您的WCF服务。它提供了比浏览器更多的功能和信息。

答案 1 :(得分:7)

Aakash,您是否使用&lt; serviceMetadata&gt;添加了服务行为?元件?它可以是空的,即&lt; serviceMetadata /&gt ;,但它必须存在。服务定义需要引用服务behaviorConfiguration。请查看以下示例:

http://www.request-response.com/blog/PermaLink,guid,c9513d28-f580-4a33-b4e8-c15476799a9d.aspx

答案 2 :(得分:2)

如果查看该端点,您会看到它看起来像其他所有端点。甚至还有服务合同(IMetadataExchange)。您可以查看System.ServiceModel.Description.IMetadataExchange并了解该合同的内容。