步骤: 1.把同样的WCF服务,在多个端口上"启动"(即同时运行多个wcf的实例,但每个实例都监听不同的端口)
2.用svcutil.exe生成的代理类,里面有N多构造函数的重载版本,观察一下类似下面的这个版本
public AstroServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
即传入配置名生与代码类的实例,我们在web.config中的wcf配置节,做如下处理:
<client>
<endpoint address="http://localhost:8001/Astro/" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService"
name="1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="http://localhost:8002/Astro/" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService"
name="2">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="http://localhost:8003/Astro/" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService"
name="3">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
即对应多个wcf服务端的实例,配置多个name的endpoint节点
3.修改客户端的调用代码
把原来类似这样的代码: using (AstroServiceClient _client = new AstroServiceClient())
改成
using (AstroServiceClient _client = new AstroServiceClient(new Random().Next(1, 4).ToString()))
即客户端随机从多个wcf服务端的host中挑一个,生成代码类实例
大功告成,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有