wcf - 在不更改站点绑定(bind)的情况下更改 WCF Web 服务的公开端点 URL

标签 wcf web-services iis-7 configuration

我有一个托管在 IIS7 中的 WCF Web 服务,它在其 WSDL 中报告其端点 URL,如下所示

http://machinename/virtualdirectory/service.svc

但是客户端需要使用的实际公共(public)URL实际上是

http://machinename.mydomain.com/virtualdirectory/service.svc

因此,目前尝试使用此 Web 服务的客户端会失败,除非他们手动编辑端点 URL。

我知道我可以通过根据 HOWTO: Fix WCF Host Name on IIS 在 IIS 中更改站点的绑定(bind)来解决此问题。但是在这种情况下,该站点与另一个应用程序共享,如果我这样做,该应用程序将停止工作,因此这不是选项。

是否有另一种方法可以更改 WCF 用于此虚拟目录的端点 URL?

最佳答案

虽然没有直接回答我的问题(如何在 web.config 文件中设置 WSDL 端点 URL)添加 <useRequestHeadersForMetadataAddress /> <serviceBehaviors> 的元素我的 web.config 文件的部分确实解决了我的问题,因为现在端点 URL 基于用于访问 WSDL 的 URL,它始终与用于调用 Web 服务的 URL 相同。

请注意,在 this SO question它表明我需要提供端口号,请注意这对我来说不是必需的 - 只需添加 <useRequestHeadersForMetadataAddress />元素就够了

<serviceBehaviors>
   <behavior name="<name>">
     <!-- Other options would go here -->
     <useRequestHeadersForMetadataAddress />
   </behavior>
</serviceBehaviors>

关于wcf - 在不更改站点绑定(bind)的情况下更改 WCF Web 服务的公开端点 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668798/

相关文章:

WCF 流媒体服务/来自媒体播放器的多个 GET 请求

c# - 运行一段时间后与 ServiceKnownType 相关的 WCF CommunicationException(或 IIS 应用程序池回收?)

php - DHT11 温度/湿度传感器 Web 服务错误

web-services - 如何使用 Cloud Functions for Firebase 编写 SOAP 服务?

asp.net - 如何在 ASP.NET 中区分/(根)和/default.aspx

asp.net - ASP.NET 中的大数组支持

.net - 为什么不使用 WCF 数据服务来查询数据?

c# - 将 JSON 对象发布到 WCF 服务对象始终为 null

java - JAX-WS服务部署

visual-studio-2008 - Web 服务器找不到请求的资源