如何配置客户机连接到相同接口但处于不同作用域的两个WCF服务器端点
本文关键字:作用域 于不同 两个 服务器 WCF 端点 接口 客户机 配置 何配置 连接 | 更新日期: 2023-09-27 17:51:07
我有一个服务,它以编程方式创建了两个相同接口的net-tcp端点,但在不同的范围内(它们在底层做不同的事情)。通常,当服务按预期运行时,客户端服务根据每个点的作用域正确地发现这两点是没有问题的。然而,由于发现不能跨子网工作,在测试时,我通常在我的app.config中添加手动配置,以使我的应用程序成功注册端点,即使发现失败(确实如此)。现在,我如何配置app.config,使其适用于我的新端点?
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<client>
<endpoint
address="net.tcp://myserver:2170/"
binding="netTcpBinding"
contract="IMyServiceInterface"
name="Service1"/>
<endpoint
address="net.tcp://myserver:2173/"
binding="netTcpBinding"
contract="IMyServiceInterface"
name="Service2"/>
</client>
</system.serviceModel>
</configuration>
如果你尝试用这个构造函数动态地创建服务客户端怎么办
public ServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress)
不确定您的问题到底是什么。我不明白为什么要在客户端研究接口,因为行为应该在服务器端定义。根据我的理解,你只需要生成你的客户端类一次(它是由VS自动完成),并使用它的构造函数,像这样:
var remoteAddr = "net.tcp://myserver:2173/";
var client = new MyClient("*",remoteAddr);
在你的app.config中将只有一个配置,指向某个默认服务器。