加入现有的 TcpChannel

Joins existing TcpChannel

我们的客户有 Citrix 环境 对于第一次启动应用程序,它会打开一个端口为 8500 OK 的 TcpChannel。当应用程序再次运行时(使用不同的进程 ID)当然不可能打开通道。但是是否可以 "Join" 或 "Merge" 到现有频道?

如何使用 TcpChannel 监听同一个端口

这是我注册频道的方法

mChannel = new TcpChannel(8500);
                ChannelServices.RegisterChannel(mChannel, false);

                mi_Transfer = new Remote.cTransfer();
                mService = RemotingServices.Marshal(mi_Transfer, "GenerateBarcode");

根据评论,我建议创建一个 Windows 服务(在 .NET 中,一个 class 扩展 System.ServiceProcess.ServiceBase),并让该服务托管 TcpChannel 在端口 8500 上。然后,让启动的应用程序的每个实例使用动态端口并向服务注册,向其提供启动应用程序的用户的用户名。然后,该服务可以使用用户名将它在端口 8500 上收到的请求路由到动态端口上应用程序的适当实例。