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