示例#1
0
        /// <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);
        }