加入现有的TcpChannel

时间:2018-01-11 14:38:56

标签: c# remoting

我们的客户拥有Citrix环境 对于第一次应用程序启动它打开一个端口8500 OK的TcpChannel。当应用程序再次运行(具有不同的进程ID)时,当然无法打开Channel。但是有可能加入"加入"或"合并"现有渠道?

如何使用TcpChannel

侦听同一端口

以下是如何注册频道

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

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

1 个答案:

答案 0 :(得分:1)

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