gpt4 book ai didi

.net - 如果我设置 HttpGetEnabled = false 会发生什么

转载 作者:行者123 更新时间:2023-12-03 14:43:47 25 4
gpt4 key购买 nike

我对元数据发布概念感到困惑。
如果在我写的 WCF 服务配置文件中:

  <serviceMetadata httpGetEnabled="false"/>
不管是真是假。当我尝试使用“添加服务引用...”在客户端应用程序中提供服务引用并单击“发现”时,我能够检索服务引用。
但是当删除以下两行时: -
<endpoint address="mex" binding="mexBasicHttpBinding" contract="IMetadataExchange"/>

<serviceMetadata httpGetEnabled="false"/>
现在,当我尝试使用“添加服务引用...”在客户端应用程序中提供引用并单击“发现”时,我是 不是 能够检索服务引用....
现在谁能告诉我这到底是什么意思。
为什么将其设置为 False 后仍然允许设置引用。以及为什么在删除这些行之后不允许设置引用。

最佳答案

MEX 和 WSDL 是两种不同的方案,用于告诉潜在客户您的服务结构。因此,您可以选择将您的服务契约(Contract)公开为“元数据交换格式”(MEX)或“web service description language”(WSDL)——后者可通过 HTTP(s) 访问。

因此,为了生成代理,您需要元数据信息。当您删除 serviceMetadata-line 时,您表示您没有提供 WSDL 格式的元数据。

但是之前的行,在 MEX 中发布您的元数据,仍然处于事件状态,因此您可以从这些元数据生成代理。

由此自然而然地得出,当您既不提供 WSDL 也不提供 MEX 格式的信息时,您将无法生成代理。

正如 Joel C 正确指出的那样,绑定(bind)是一个(n 几乎)正交概念。您是否允许客户端通过基本的 HTTP、ws HTTP、网络命名管道或 Crystal 球与您交谈,完全不取决于您发布服务的方式。

WCF security guidance project和/或 MS "practises and patterns" for WCF security可能会提供更深入的见解。

关于.net - 如果我设置 HttpGetEnabled = false 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5671885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com