我在两台远程计算机上部署了WCF服务(假设WCFService1)。由于相同的服务部署在两台不同的机器上,因此它们具有通用接口和常用方法。
WCFService1部署在Machine1和Machine2上。
要从客户端计算机使用WCF服务,我创建了一个客户端应用程序:
我添加了WCF服务的设计时参考(WCFService1)(在URL http://11.12.25.23/WCFService/Service1.svc的帮助下)。
现在我可以调用服务中公开的方法。到目前为止它很好......
现在我的问题是如果我必须在运行时更新客户端,并使用不同的网址托管在不同机器上的相同服务(假设http://12.12.24.24/WCFService/Service1.svc),我该怎么办?< / p>
目前我正在这样做:
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc");
MyServiceClient serviceClient = new MyServiceClient(binding, address);
但每当我用来调用服务中暴露的方法时,我都会遇到绑定错误匹配错误。
答案 0 :(得分:1)
您是否尝试过先调用您的客户?
例如:
MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");
答案 1 :(得分:0)
我怀疑,如果你查看Machine1上的web.config文件,你会看到绑定存在WSHttpBinding(或者与BasicHttpBinding不同的东西)。如果您将其更改为BasicHttpBinding(假设这是您真正想要的),您将删除此错误。
答案 2 :(得分:0)
您的服务是如何配置的?向我们展示您的服务器端和客户端配置!
绑定不匹配意味着你要么没有使用相同的绑定,要么绑定上的一些重要参数是不同的 - 必须有一些配置错误 - 所以请告诉我们配置!
马克