我使用C#WCF创建了一个Web服务,它通过IIS托管。是否有任何设置来隐藏/删除端口并使服务标签看起来像这样?是IIS服务器上的设置,还是Web服务web.config文件中的设置?
基本上,我如何选择制作它(或不制作它)?
<wsdl:service name="GameService" />
澄清:我想知道在IIS或web.config中是否存在允许完全隐藏或显示所有已配置端口的设置。
其他问题:WSDL是否未读取Web.Config文件? IIS是生成WSDL还是服务?
进一步澄清:这是尝试解决this question,但未得到答复。这个问题试图简化和改写,以便我实际收到可能的解决方案。
答案 0 :(得分:0)
根据MSDN:
ServiceDescription实例映射到wsdl:service元素。 ServiceDescription实例包含一组ServiceEndpoint实例,每个实例都映射到单个wsdl:port元素。
因此,您应该添加/删除ServiceEndpoint以影响生成的WSDL中的ports部分。
Here是ServiceEndpoints的描述,还有一个示例,您可以看到如何添加/删除它们。我不确定你是否可以在没有至少一个端口的情况下提供功能服务。
希望这有帮助。
答案 1 :(得分:0)
端点绑定有两种不同的类型:SOAP和REST。您的服务可以包含在web.config文件中,只要它们具有不同的地址,但只有SOAP端点将在WSDL中列出。无需其他设置或配置,只要受支持的类型,服务就会自动获取此信息。
webHttpBinding是一个基于REST的端点绑定。它适用于使用该服务的JSON / JavaScript客户端,但不会在WSDL中列出。
basicHttpBinding是一个基于SOAP的端点绑定。它适用于C#客户端。如果您使用Visual Studio添加服务引用,它将自动将这些端点添加到您的app.config文件中,这是因为该信息在WSDL中列出。
感谢@nodots让我指出了正确的方向。