0

本文描述了使用 TCP 在 Windows 服务中对主机 WCF 进行热处理后,在机器上安装了服务后,我构建了简单Console Application ProjectAdd Service Reference. 直到这里一切都很清楚,即使在同一网络上的另一台计算机上也能正常工作。我的问题是,如果我在多台机器上安装了我的服务,并且每台机器都有不同的 IP 地址,当然我该如何测试我的客户端应用程序?我需要几个Console Application Projects不同Add Service Reference的 IP 地址(App.config)吗?

4

1 回答 1

3

这取决于你想完成什么。如果它是部署到所有机器上的相同服务,那么您可以使用相同的服务引用,因为您将使用相同的生成合同。您需要更改的是要连接到哪台机器,您将在 app.config 的服务客户端部分进行更改。只要所有服务都使用相同版本的合同,您就可以将连接交换到您喜欢的任何一个。但是,您确实需要指定一个,而不是多个。如果要进行负载平衡,则需要单独进行。

如果您部署的服务在合同中不相同,那么您将需要添加更多服务引用,为合同中的每个变体添加一个。

编辑:假设我们想在运行时设置客户端端点地址,但假设我们已经MyServiceClient使用服务参考工具生成了客户端代理():

  1. 使用您的输入创建端点地址
  2. 获取该地址的客户
  3. 拨打您的电话,并确保事后关闭您的客户,或者最好在using

一个完整的例子,正确处理客户端:

void MakeCall(Uri serviceEndpoint) {
    var address = new EndpointAddress(serviceEndpoint);
    using(var client = new MyServiceClient(address)) {
        client.MakeCallToSomeServiceFunction();
    }
}

然后你可以用类似的东西来调用它MakeCall(new Uri("http://mymachine:8080")),或者从一些 UI 中获取输入。

于 2013-10-21T20:49:18.720 回答