首页 新闻 会员 周边

nginx .net webservice 无法负载均衡

0
悬赏园豆:5 [已解决问题] 解决于 2017-05-23 18:37

场景:
1.10个.NET webservice站点

2.客户端采用动态代理方式   访问webservice。

3.NGINX做负载均衡。静态页面访问  测试正常(地址:http://localhost)

 

问题:

1.动态代理访问时会先根据wsdl生成临时代理DLL

2.但代理DLL当中的<soap12:address location="http://localhost:8882/WebService.asmx"/>
地址是随机的生成时是那个地址 后面的代理就是那个地址  怎么修改这个地址了?

问题补充:

问题的根源在于 SOAP 的地址生成的是本地的  不是NGINX的。
只需要用NGINX自带的替换模块  替换成NGINX的就行了

落幕残情的主页 落幕残情 | 初学一级 | 园豆:34
提问于:2017-03-29 19:02
< >
分享
最佳答案
0

behavior节点下加个useRequestHeadersForMetadataAddress

收获园豆:5
Daniel Cai | 专家六级 |园豆:10424 | 2017-03-29 19:34

这貌似是WCF下面的实现吧  在我们的另外一个 WCF 做的WS上面就这样做的  感谢你的回答

落幕残情 | 园豆:34 (初学一级) | 2017-05-23 18:36
其他回答(2)
0

System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
System.ServiceModel.EndpointAddress address = new System.ServiceModel.EndpointAddress("your nginx server address");
xxxSoapClient client = new xxxSoapClient(binding, address);

czd890 | 园豆:14412 (专家六级) | 2017-03-29 19:11

这种方式正常WS 可以但是如果采用动态代理就不得行。谢谢你的回答。

支持(0) 反对(0) 落幕残情 | 园豆:34 (初学一级) | 2017-05-23 18:35
0

这是很正常的,Nginx做不了SOAP的负载。

我基于RabbitMQ实现了WCF的负载均衡,可以参考下。

http://git.oschina.net/lishilei0523/WCF-RabbitMQ

黄昏MMM | 园豆:320 (菜鸟二级) | 2017-03-30 09:10

感谢你的回答

支持(0) 反对(0) 落幕残情 | 园豆:34 (初学一级) | 2017-05-23 18:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册