If I create a TcpChannel using port zero i.e. allowing .Net Remoting to allocate an available port, is there anyway to then determine which port number has been allocated?
I know that I can specify the port number when creating the channel, however I don’t want to do this as I want to run multiple instances of the listening application on the same Citrix server – each instance listening on a different port.
Ideally I don’t want to have to go to the trouble of reserving a bunch of ports and then keeping track of which ones have been allocated. I’d just like to let the port be allocated automatically – but then I need to be able to know which port number has been allocated.
My solution was as follows:
Use the following code to identify an unused port for each instance of the client application:
Store the unused port number in the client application.
Pass the stored port number to the host application via a command line parameter for use when setting up the TcpChannel and calling Activator.GetObject.
Use the stored port number in the client application in the URL passed to Activator.GetObject.