【发布时间】:2015-04-24 16:32:20
【问题描述】:
我使用 C# WCF 创建了一个 Web 服务,该服务通过 IIS 托管。是否有任何设置可以隐藏/删除端口并使服务标签看起来像这样?设置是在 IIS 服务器上,还是在 web 服务 web.config 文件中?
基本上,我该如何选择让它(或不让它)看起来像这样?
<wsdl:service name="GameService" />
澄清:我想知道在 IIS 或 web.config 中是否有允许完全隐藏或显示所有已配置端口的设置。
其他问题:WSDL 不读取 Web.Config 文件吗? IIS 生成 WSDL,还是服务生成?
进一步澄清:这是解决this question 的尝试,但没有得到答复。这个问题试图简化和改写,以便我真正得到可能的解决方案。
【问题讨论】:
-
最简单的方法是让 IIS 提供 static WSDL,即您可以按照自己的方式自定义的文本文件。缺点是当您更改服务中的任何内容时,您必须记住保持静态 WSDL 同步。第二种选择是查看 WSDL 生成的扩展点,here's a starting point。
-
忘记添加了,静态 WSDL 文件在 web.config 中引用如下:
<serviceMetadata externalMetadataLocation="Path\To\YourCustom.wsdl" /> -
-
重新考虑通过从 WSDL 中删除端口来解决的实际问题可能是值得的 - 这是一种不寻常的情况。也许这是XY problem?
-
感谢上下文告诉我我误解了这个问题(它 is XYish 恕我直言;)。我什至有一个有根据的猜测:在您链接的问题中,我发现了
<webHttpBinding>。 IIRC 这是一个基于 REST 的绑定,而 WSDL 是 SOAP。如果有帮助,请检查此问题:stackoverflow.com/q/3040165/626761
标签: c# web-services wcf iis wsdl