如何对IIS 6托管的WCF服务进行负载均衡?

Jas*_*son 7 wcf iis-6 hostheaders

我们使用BigIP在两个IIS服务器之间进行负载平衡.我们最近将IIS 6托管的WCF服务部署到这两台Windows Server 2003R2服务器上.

每个服务器配置有两个主机头:一个用于负载平衡器地址,另一个主机头仅指向该服务器.这样我们就可以引用负载均衡组中的特定服务器进行调试.

所以当我们运行时我们立刻得到了错误:

此集合已包含方案http的地址.此集合中每个方案最多只能有一个地址.参数名称:item

我做了一些研究,我们可以实现一个过滤器来告诉它忽略其中一个主机,但是我们无法从该地址访问服务器.

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://domain.com:80"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,什么是最佳解决方案,允许我们通过http://domain.com/service.svchttp://server1.domain.com/service.svc访问 WCF服务?

如果我们应该像某些网站建议的那样创建我们自己的ServiceFactory,那么有没有人有任何示例代码?

任何帮助深表感谢.

编辑:如果可能的话,我们需要能够从两个地址中的任何一个访问WCF服务.

谢谢.

CPU*_*USY 1

在你的 bigIP 上创建 2 个新的虚拟服务器 http://server1.domain.com/ http://server2.domain.com/

为每个 VS 创建一个池,其中仅包含特定服务器 - 因此不会有实际的负载平衡并以这种方式访问​​它。如果您缺少外部 IP,您仍然可以使用与生产域名相同的 IP,只需使用 irule 将流量引导到适当的池

希望这可以帮助