我有一个托管在 IIS7 中的 WCF Web 服务,该服务在其 WSDL 中报告其端点 URL,如下所示
http://machinename/virtualdirectory/service.svc
然而,客户端需要使用的实际公共 URL 实际上是
http://machinename.mydomain.com/virtualdirectory/service.svc
因此,目前尝试使用此 Web 服务的客户端会失败,除非他们手动编辑端点 URL。
我知道我可以通过更改 IIS 中站点的绑定来解决此问题如何:修复 IIS 上的 WCF 主机名 http://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/但是在这种情况下,该网站与另一个应用程序共享,如果我这样做,该应用程序就会停止工作,所以这个isn't一个选项。
是否有另一种方法可以更改 WCF 用于此虚拟目录的端点 URL?
虽然没有直接回答我的问题(如何在 web.config 文件中设置 WSDL 端点 URL),但添加<useRequestHeadersForMetadataAddress />
元素到<serviceBehaviors>
我的 web.config 文件的部分确实解决了我的问题,因为现在端点 URL 基于用于访问 WSDL 的 URL,该 URL 始终与用于调用 Web 服务的 URL 相同。
请注意,在这个问题 https://stackoverflow.com/questions/5007270/wcf-in-azure-how-to-change-wsdl-url-from-internal-machine-name-to-public它表明我需要提供端口号,请注意,这对我来说不是必需的 - 只需添加<useRequestHeadersForMetadataAddress />
元素就足够了
<serviceBehaviors>
<behavior name="<name>">
<!-- Other options would go here -->
<useRequestHeadersForMetadataAddress />
</behavior>
</serviceBehaviors>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)