1

我有一个 WCF 服务(比如说 WCFService1 )部署在两台远程机器上。由于相同的服务部署在两台不同的机器上,它们具有公开的通用接口和通用方法。

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);

但是每当我使用调用服务中公开的方法时,我都会遇到绑定不匹配错误。

4

3 回答 3

1

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

例如:

MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");
于 2009-07-30T05:53:06.360 回答
0

我怀疑,如果您查看 Machine1 上的 web.config 文件,您会看到那里的绑定是 WSHttpBinding(或不同于 BasicHttpBinding 的东西)。如果您将其更改为 BasicHttpBinding(假设这是您真正想要的),您将删除此错误。

于 2009-07-30T05:52:28.403 回答
0

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

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

马克

于 2009-07-30T06:01:59.400 回答