/// <returns></returns> private RemoteController CreateRemoteController(string strMachineName, int iPortNumber) { RemoteController remoteController = null; try { string strRemoteObjUrl = "tcp://" + strMachineName + ":" + iPortNumber.ToString() + "/GalaxyRemoteController"; UrlAttribute urlAttr = new UrlAttribute(strRemoteObjUrl); object[] rgAct = { urlAttr }; remoteController = Activator.CreateInstance(Type.GetType("Galaxy.Tools.RemoteController, RemoteImpLib"), null, rgAct) as RemoteController; remoteController.AddCmdOutputEventSinker(m_cmdOutputEventSinker.OnCmdOutput); remoteController.AddCmdFinishEventSinker(m_cmdOutputEventSinker.OnCmdFinish); remoteController.IsLive(); } catch (Exception e) { // The remote server is offline remoteController = null; Console.WriteLine(e.Message); } // Register the lease sponsor if (remoteController != null) { remoteController.Port = iPortNumber; remoteController.MachineName = strMachineName; ILease lease = RemotingServices.GetLifetimeService(remoteController) as ILease; lease.Register(m_sponsor); } return(remoteController); }