我们的客户拥有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");
答案 0 :(得分:1)
根据评论,我建议创建一个Windows服务(在.NET中,一个扩展System.ServiceProcess.ServiceBase
的类),并让服务在端口8500上托管TcpChannel
。然后,让每个实例启动的应用程序使用动态端口并向服务注册,为其提供启动应用程序的用户的用户名。然后,该服务可以使用用户名将其在端口8500上接收的请求路由到动态端口上的应用程序的相应实例。