2009-07-30 125 views
1

我有一个WCF服务(假设WCFService1)部署在两台远程机器上。由于同一服务部署在两台不同的机器上,因此它们具有公共接口和常见方法。通过URL访问WCF服务

WCFService1部署在Machine1和Machine2上。

从客户机上使用WCF服务,我创建了一个客户端应用程序:

  1. 我加入了WCF服务(WCFService1)的设计时参考(与URL http://11.12.25.23/WCFService/Service1.svc的帮助)。

  2. 现在我可以调用服务中公开的方法。到现在为止,其精细...

现在我的问题是如果我必须更新在运行时,在不同的机器上托管的不同的URL相同的服务客户端(比方说http://12.12.24.24/WCFService/Service1.svc),我该怎么办那?

目前我这样做:

BasicHttpBinding binding = new BasicHttpBinding(); 
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc"); 
MyServiceClient serviceClient = new MyServiceClient(binding, address); 

但每当我用它来调用服务中公开的我得到了结合错配误差的方法。

回答

1

您是否尝试过先调用客户端?

如:

MyWCFClient client = new MyWCFClient(); 
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc"); 
0

我怀疑,如果你在Machine1的web.config文件中看,你会发现绑定有WSHttpBinding(或者与BasicHttpBinding不同)。如果您将其更改为BasicHttpBinding(假设这是您真正想要的),您将删除此错误。

+0

Thanks!这是解决 – 2009-07-30 06:24:22

0

如何配置你的服务?向我们展示您的服务器端和客户端配置!

绑定不匹配意味着您要么没有使用相同的绑定,要么绑定上的一些重要参数不同 - 必须有某些配置错误 - 请向我们展示配置!

Marc