Home Articles

如何配置客户端连接到同一接口但不同范围的两个WCF服务器 endpoints ?

Asked
Viewed 1224 times
1

我有一个服务,以编程方式创建相同接口但在不同范围内的两个net-tcp endpoints (它们在引擎盖下做不同的事情) . 通常,当服务按预期运行时,客户服务根据每个服务的范围正确发现这两个点是没有问题的 . 但是,由于发现在子网中不起作用,因此在测试时我通常会将手动配置添加到我的app.config中,以使我的应用程序成功注册 endpoints ,即使发现失败(确实如此) . 现在我如何配置我的app.config以便它适用于我的新 endpoints ?

<?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>

2 Answers

  • 0

    如果您尝试动态地使用此构造函数创建服务客户端,该怎么办?

    public ServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress)
    

    并手动推送不同的设置 .

  • 0

    不确定你的问题究竟是什么 . 我不明白你为什么要调查客户端的接口,因为行为应该在服务器上定义 . 根据我的理解,你只需要生成一次客户端类(它由VS自动完成)并使用它的构造函数:

    var remoteAddr = "net.tcp://myserver:2173/";
    var client = new MyClient("*",remoteAddr);
    

    在你的app.config中,只有一个配置,指向一些默认服务器 .

Related