【问题标题】:Regarding Mex & WSDL issue in WCF关于 WCF 中的 Mex 和 WSDL 问题
【发布时间】:2014-02-04 19:31:46
【问题描述】:

这个设置httpGetEnabled="false" or httpGetEnabled="true"有什么重要性如果我们设置httpGetEnabled="false"会发生什么

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

在 wcf mex 中也可以公开元数据。所以我想知道 mex 和 wsdl 有什么区别?

mex 提供什么比 wsdl 更多?人们说 mex 是可配置的,但 wsdl 不是……这是什么意思?需要详细信息。

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

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

我需要输入什么 url 才能拥有任何 wcf 服务的 wsdl?如果 `httpGetEnabled="false 则 wsdl 是否可行。

在这里,我问了几个关于 mex 和 wsdl 的问题。我对 wcf 中的 mex 和 wsdl 用法有点困惑。

另一个问题是,soap 在 wcf & 关系中的用途是什么。

【问题讨论】:

    标签: c# wcf wsdl mex


    【解决方案1】:

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

    元数据只是为了更容易生成代理类而公开。这允许开发人员在 VS 中“添加服务引用”。 WCF 提供了另一种生成代理类的方法:将wsdl.exe 与物理 wsdl 文件一起使用。

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

    公开元数据对开发人员很有用,因为它允许开发人员在每次修改合约后轻松重新生成代理类(更新服务参考)。在 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”。只需浏览服务 url,wcf 就会为您生成一个帮助页面。

    【讨论】:

    • mex 结构是什么样的?什么 mex 比 wsdl 提供更多?
    • MEX 和 WSDL 都输出完全相同的东西。 Mex 只是 WCF 的方式。
    猜你喜欢
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2010-10-14
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多