Jus*_*tin 3 configuration wcf iis-7 web-services
我在IIS7中托管了一个WCF Web服务,它在其WSDL中将端点URL报告为以下内容
http://machinename/virtualdirectory/service.svc
Run Code Online (Sandbox Code Playgroud)
但是,客户端需要使用的实际公共URL实际上是
http://machinename.mydomain.com/virtualdirectory/service.svc
Run Code Online (Sandbox Code Playgroud)
因此,目前尝试使用此Web服务的客户端会失败,除非他们手动编辑端点URL.
我知道我可以通过在HOWTO中更改IIS中的站点绑定来解决这个问题:在IIS上修复WCF主机名但是在这种情况下,该站点与另一个应用程序共享,如果我这样做就停止工作,所以这不是一个选项.
是否有另一种方法可以更改WCF用于此虚拟目录的端点URL?
虽然没有直接回答我的问题(我如何在web.config文件中设置WSDL端点URL)将<useRequestHeadersForMetadataAddress />元素添加到<serviceBehaviors>我的web.config文件的部分确实解决了我的问题,因为现在端点URL基于用于的URL访问WSDL,它始终与用于调用Web服务的URL相同.
请注意,在这个SO问题中,它表明我需要提供端口号,请注意,这对我来说不是必需的 - 只需添加<useRequestHeadersForMetadataAddress />元素即可
<serviceBehaviors>
<behavior name="<name>">
<!-- Other options would go here -->
<useRequestHeadersForMetadataAddress />
</behavior>
</serviceBehaviors>
Run Code Online (Sandbox Code Playgroud)