2011-08-28 82 views
2

我需要实现一个系统,该系统能够在使用相同WSDL部署的不同应用程序上有条件地使用Web服务。例如,如果系统B,C,D和E托管所有基于相同WSDL的Web服务WS1,WS2,WS3和WS4,从而暴露相同的Web方法,则我的系统A将需要消费以下之一:这4个Web服务基于从下游组件(例如数据库)检索到的条件。系统B,C,D和E可以用任何技术(Java,.NET等)来实现,但我的系统A基于.NET。.NET中的动态Web服务代理?

因此,基于此系统上的此WSDL的代理类需要动态更改Web服务代理中的URI。那么,在我使用所需的Web服务之前,如何动态更改端点?

回答

2

由“添加服务引用”或svcutil.exe生成的代理类有几个接受远程地址的构造函数。使用其中之一。见WCF Client Overview

例如:

EndpointAddress addr = new EndpointAddress(uri); 
var client = new MyServiceClient(bindingConfigurationName, addr); 
0

你的意思是改变这样的网址?

net.webservicex.www.LondonGoldAndSilverFix Proxy = new net.webservicex.www.LondonGoldAndSilverFix(); 

Proxy.Url = "http://www.webservicex.net/LondonGoldFix.asmx"; 
+0

差不多了,史蒂夫,他使用WCF -1。 –