dav*_*ywc 3 .net port remoting
如果我使用端口0创建一个TcpChannel,即允许.Net Remoting分配一个可用端口,那么无论如何要确定哪个端口号已被分配?
我知道我可以在创建频道时指定端口号,但我不想这样做,因为我想在同一Citrix服务器上运行多个侦听应用程序实例 - 每个实例都在另一个端口上侦听.
理想情况下,我不希望不得不去保留一堆端口,然后跟踪已分配的端口.我只想让端口自动分配 - 但是我需要知道哪个端口号已被分配.
我不太了解这一点,但是在MSDN上浏览它说明零后使用返回a TcpServerChannel,并且a TcpServerChannel有一个GetChannelUri()方法; 那包括端口号吗?(您可能需要解析,通过new Uri(s).Port).
再次,完整的猜测工作.如果没有,只要说;-p
由AakashM编辑添加这是正确的方法.以下
var channel = new TcpChannel(0);
Run Code Online (Sandbox Code Playgroud)
可以使用检索包含的服务器通道的动态分配的帖子
var channelData = (ChannelDataStore)channel.ChannelData;
var port = new System.Uri(channelData.ChannelUris[0]).Port;
Run Code Online (Sandbox Code Playgroud)
丑陋的演员是必要的,因为该TcpChannel.ChannelData属性被打字为object......