WCF 在负载均衡器后面的 wsdl 中提供不正确的 url
WCF provide incorrect urls in wsdl behind a load balancer
我在负载均衡器后面的 Web 服务器集群上安装了一个 wcf。
公共地址是:http://externaldomain/mywcf.svc,它是用户应该访问的唯一端点。
所以,当我将此 url 粘贴到浏览器中以查看 "the helper page"(显示 "wsdl" 文件的 url 的页面)
地址与我预期的不一样:“http://externaldomain/mywcf.svc?wsdl" but "http://server1/mywcf.svc?wsdl”(server1 是 wcf 运行 所在的服务器的名称,用户已被负载均衡器路由)
这使得无法将服务添加到 visualstudio,因为建议的地址“http://server1/mywcf.svc=wsdl”是私有地址 url
那么,我应该如何配置 wcf 设置以使 "aspnet" 生成具有 "correct" 地址的帮助页面?
在 web.config
中是否有一些 "proxy" 节点或类似的设置
#### public url #### #### private url ####
(http://server1)
----------------
--> -- webserver1 --
/ ----------------
/
(http://externaldomain) /
---------------------- /
--- load balancer ----
---------------------- \
\
\
\ (http://server2)
--> ----------------
-- webserver2 --
----------------
WCF 对于这种情况有特殊的行为 useRequestHeadersForMetadataAddress
。
<serviceBehaviors>
<behavior>
<useRequestHeadersForMetadataAddress/>
</behavior>
</serviceBehaviors>
此行为使服务将请求中使用的 url 替换为 url,从而避免了您提到的问题。更多信息:http://zamd.net/wcf/2010/01/14/using-request-headers-for-metadata-address.html
我在负载均衡器后面的 Web 服务器集群上安装了一个 wcf。
公共地址是:http://externaldomain/mywcf.svc,它是用户应该访问的唯一端点。
所以,当我将此 url 粘贴到浏览器中以查看 "the helper page"(显示 "wsdl" 文件的 url 的页面) 地址与我预期的不一样:“http://externaldomain/mywcf.svc?wsdl" but "http://server1/mywcf.svc?wsdl”(server1 是 wcf 运行 所在的服务器的名称,用户已被负载均衡器路由)
这使得无法将服务添加到 visualstudio,因为建议的地址“http://server1/mywcf.svc=wsdl”是私有地址 url
那么,我应该如何配置 wcf 设置以使 "aspnet" 生成具有 "correct" 地址的帮助页面? 在 web.config
中是否有一些 "proxy" 节点或类似的设置 #### public url #### #### private url ####
(http://server1)
----------------
--> -- webserver1 --
/ ----------------
/
(http://externaldomain) /
---------------------- /
--- load balancer ----
---------------------- \
\
\
\ (http://server2)
--> ----------------
-- webserver2 --
----------------
WCF 对于这种情况有特殊的行为 useRequestHeadersForMetadataAddress
。
<serviceBehaviors>
<behavior>
<useRequestHeadersForMetadataAddress/>
</behavior>
</serviceBehaviors>
此行为使服务将请求中使用的 url 替换为 url,从而避免了您提到的问题。更多信息:http://zamd.net/wcf/2010/01/14/using-request-headers-for-metadata-address.html