gpt4 book ai didi

c# - 如果两个应用程序使用不同的端点地址,它们能否共享相同的 WCF NetTcpBinding 端口?

转载 作者:太空狗 更新时间:2023-10-30 01:12:05 26 4
gpt4 key购买 nike

我有一个客户端和服务器场景,其中一个服务安装在客户端上,另一个服务安装在服务器上。当这些安装在不同的机器上时,我没有问题。但是,我也希望能够在同一台机器上同时安装客户端服务和服务器服务。我可以将它们设置为使用不同的端口,但我想使用单个端口来完成此操作。

我已经启用并启动了 Net.Tcp 端口共享服务 Windows 服务。我先启动服务器服务。当我尝试启动客户端服务时,在执行 serviceHost.Open() 时出现以下异常:

TransportManager 无法使用 NetTcpPortSharing 服务监听提供的 URI:URI 已在服务中注册。

下面是源代码。 Server和Client使用不同的端点地址如下:

服务器服务:

ServiceHost serviceHost = new ServiceHost(typeof(ServerService),
new Uri("net.tcp://localhost:50000");
NetTcpBinding binding = new NetTcpBinding();
serviceHost.AddServiceEndpoint(typeof(IServerService),
binding, "ServerService");
serviceHost.Open();

客户服务:

ServiceHost serviceHost = new ServiceHost(typeof(ClientService),
new Uri("net.tcp://localhost:50000");
NetTcpBinding binding = new NetTcpBinding();
serviceHost.AddServiceEndpoint(typeof(IClientService),
binding, "ClientService");
serviceHost.Open();

最佳答案

我刚刚解决了在 ServiceHost 实例化过程中使基本 URI 不同的问题。修改后的代码如下:

服务器

ServiceHost serviceHost = new ServiceHost(typeof(ServerService),
new Uri("net.tcp://localhost:50000/Server");
...

客户端

ServiceHost serviceHost = new ServiceHost(typeof(ClientService),
new Uri("net.tcp://localhost:50000/Client");
...

关于c# - 如果两个应用程序使用不同的端点地址,它们能否共享相同的 WCF NetTcpBinding 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com