关于Mex& WCF中的WSDL问题

时间:2014-02-04 19:31:47

标签: c# wcf wsdl mex

此设置的重要性httpGetEnabled="false" or httpGetEnabled="true"如果设置httpGetEnabled="false"

将会发生什么

如果我想要任何.Net 2.0客户端可以使用由.Net 4.0开发的wcf服务那么我应该如何开发wcf服务。一旦我读到如果任何客户端需要使用我的wcf服务,那么我们需要设置httpGetEnabled="true",因此他们可以通过wsdl使用ny wcf服务。事情并不明确,所以如果可能请详细了解wcf服务如何通过wsdl公开。

在wcf mex中也有暴露元数据。所以我想知道mex和amp;之间有什么区别? WSDL?

mex比wsdl提供的更多?人们说mex是可配置的,但是wsdl不是......它是什么意思?需要细节。

如果我们搜索Google以查看wsdl信封的外观,那么我们会获得大量链接,但我没有发现mex信封如何搜索Google。所以请帮我看一下mex元数据结构的样子。

如果我们从服务配置中删除mex端点,那么其他客户端如何使用我的服务? 其他客户端可以通过wsdl使用我的服务,如果是,那么如何?

我需要输入什么网址来获得任何wcf服务的wsdl?如果`httpGetEnabled =“false,则wsdl将成为可能。

在这里,我在mex&上询问了几个问题。 WSDL。我是新人,对mex&在wcf中使用wsdl。

另一个问题是wcf&中肥皂的用途是什么?关系。

1 个答案:

答案 0 :(得分:1)

调用服务与公开元数据完全不同。基本上,服务不必公开客户端调用的元数据(mex或wsdl)。

元数据刚刚暴露,允许更容易生成代理类。这允许开发人员在VS中添加“添加服务引用”。 WCF提供了另一种生成代理类的方法:使用wsdl.exe和物理wsdl文件。

您还可以通过程序集重新分发服务合同并使用ChannelFactory。

公开元数据在dev上很有用,因为它允许开发人员在合同上的每次修改后轻松地重新生成代理类(更新服务参考)。在Stage / Prod上,它取决于您的上下文:通常禁用“隐藏”服务合同。

关于wsdl与mex,最近还有另一个answer

If we remove mex endpoint from service config then how other client can consume my service? other client can consume my service then through wsdl if yes then how ?

只有拥有生成的代理类或服务定义时,您的客户才能调用您的服务。正如我所说,他们可以在需要或使用您之前发送的物理wsdl文件时使用元数据生成此类。

what url I need to enter to have the wsdl of any wcf service ? if `httpGetEnabled="false then wsdl will be possible or not.

HttpGetEnable允许您通过HTTP GET方法公开元数据,通常是服务的地址,后缀为“?wsdl”。只需浏览服务网址,wcf就会为您生成帮助页面。