本文描述了使用 TCP 在 Windows 服务中对主机 WCF 进行热处理后,在机器上安装了服务后,我构建了简单Console Application Project
和Add Service Reference
. 直到这里一切都很清楚,即使在同一网络上的另一台计算机上也能正常工作。我的问题是,如果我在多台机器上安装了我的服务,并且每台机器都有不同的 IP 地址,当然我该如何测试我的客户端应用程序?我需要几个Console Application Projects
不同Add Service Reference
的 IP 地址(App.config)吗?
问问题
195 次
1 回答
3
这取决于你想完成什么。如果它是部署到所有机器上的相同服务,那么您可以使用相同的服务引用,因为您将使用相同的生成合同。您需要更改的是要连接到哪台机器,您将在 app.config 的服务客户端部分进行更改。只要所有服务都使用相同版本的合同,您就可以将连接交换到您喜欢的任何一个。但是,您确实需要指定一个,而不是多个。如果要进行负载平衡,则需要单独进行。
如果您部署的服务在合同中不相同,那么您将需要添加更多服务引用,为合同中的每个变体添加一个。
编辑:假设我们想在运行时设置客户端端点地址,但假设我们已经MyServiceClient
使用服务参考工具生成了客户端代理():
- 使用您的输入创建端点地址
- 获取该地址的客户
- 拨打您的电话,并确保事后关闭您的客户,或者最好在
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 回答