コード例 #1
0
        /// <summary>
        /// Creates an instance with the default configuration as specified in the
        /// DSS runtime application settings section of this programs configuration file.
        /// </summary>
        public PackageDeployerService()
        {
            var security = SecurityManager.CreateDefault();

            _configuration = new DssRuntimeConfiguration {
                SecuritySettings = SecurityManager.Serialize(security)
            };
        }
コード例 #2
0
        private void ConductorClt_Load(object sender, EventArgs e)
        {
            DssRuntimeConfiguration dssConfig = new DssRuntimeConfiguration();

            dssConfig.PublicHttpPort = 0;
            dssConfig.PublicTcpPort  = 0;

            int port = 40000;

            do // 从TCP端口40000起查找尚未被占用的端口
            {
                while (IsPortInUse(ProtocolType.Tcp, port))
                {
                    port++;
                }
                if (dssConfig.PublicHttpPort == 0)
                {
                    dssConfig.PublicHttpPort = port;
                    port++;
                }
                else
                {
                    dssConfig.PublicTcpPort = port;
                }
            } while (dssConfig.PublicHttpPort == 0 || dssConfig.PublicTcpPort == 0);

            // 调试时在同一节点上启动Server服务和Client服务
            string[] strArrManifestFileNames = new string[2] {
                Application.StartupPath + "\\Sim2DSvr.manifest.xml",
                Application.StartupPath + "\\Sim2DClt.manifest.xml",
            };
            //DssEnvironment.Initialize(dssConfig, strArrManifestFileNames);

            // 在50000/50001这组端口上启动一个DSS Node并初始化Server服务实例
            string strServerManifestFileName = Application.StartupPath + "\\Sim2DSvr.manifest.xml";
            //DssEnvironment.Initialize(dssConfig, strServerManifestFileName);

            // 在40000/40001这组端口上启动一个DSS Node并初始化Client服务实例
            string strClientManifestFileName = Application.StartupPath + "\\Sim2DClt.manifest.xml";

            DssEnvironment.Initialize(dssConfig, strClientManifestFileName);

            // 等待当前Dss Node上的某Dss Service发生Drop事件执行DssEnvironment.Shutdown命令
            DssEnvironment.WaitForShutdown();

            // 退出客户端启动引导程序界面不再显示
            Application.Exit();
        }
コード例 #3
0
        /// <summary>
        /// Creates an instance with the specified parameters.
        /// </summary>
        public PackageDeployerService(string hostName, int tcpPort, string rootDirectory,
                                      bool allowRemote, string securitySettings)
        {
            // Validate
            if (String.IsNullOrWhiteSpace(hostName))
            {
                throw new ArgumentNullException("hostName");
            }
            if (tcpPort <= 0)
            {
                throw new ArgumentOutOfRangeException("tcpPort");
            }
            if (String.IsNullOrWhiteSpace(rootDirectory))
            {
                // Use current directory when root not specified
                rootDirectory = Directory.GetCurrentDirectory();
            }
            else
            {
                // Expand, check and create path when specified
                rootDirectory = Path.GetFullPath(rootDirectory);
                if (!Directory.Exists(rootDirectory))
                {
                    Directory.CreateDirectory(rootDirectory);
                }
            }
            if (String.IsNullOrWhiteSpace(securitySettings))
            {
                throw new ArgumentNullException("securitySettings");
            }

            // Override configuration options with our specific settings
            ConfigurationManager.AppSettings[MrdsConstants.AllowRemoteAccessAppSettingName] = allowRemote.ToString();
            _configuration = new DssRuntimeConfiguration
            {
                HostName         = hostName,
                PublicTcpPort    = tcpPort,
                HostRootDir      = rootDirectory,
                SecuritySettings = securitySettings
            };
        }