通过URL访问WCF服务

时间:2009-07-30 05:45:25

标签: wcf wcf-binding wcf-security wcf-client

我在两台远程计算机上部署了WCF服务(假设WCFService1)。由于相同的服务部署在两台不同的机器上,因此它们具有通用接口和常用方法。

WCFService1部署在Machine1和Machine2上。

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

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

  2. 现在我可以调用服务中公开的方法。到目前为止它很好......

  3. 现在我的问题是如果我必须在运行时更新客户端,并使用不同的网址托管在不同机器上的相同服务(假设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);
    

    但每当我用来调用服务中暴露的方法时,我都会遇到绑定错误匹配错误。

3 个答案:

答案 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)

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

绑定不匹配意味着你要么没有使用相同的绑定,要么绑定上的一些重要参数是不同的 - 必须有一些配置错误 - 所以请告诉我们配置!

马克