private void InitializeSites()
        {
            if (DynamicSiteSettings.GetSiteCache.Count() > 0 && _sites != null && _dynamicSiteDictionary.Count > 0) return;

            Assert.IsNotNullOrEmpty(_dynamicConfigPath, "No siteConfig specified in DynamicSiteProvider configuration.");
            var collection = new SiteCollection();

            var nodes = Factory.GetConfigNodes(FileUtil.MakePath(_dynamicConfigPath, "defaultsite", '/'));
            Assert.IsFalse((nodes.Count > 1 ? 1 : 0) != 0, "Duplicate Dynamic Default Site Definition.");

            if (nodes.Count == 0) return;

            var defaultSite = ParseDefaultNode(nodes[0]);

            //Create Dictionary
            var siteDictionary = DynamicSiteManager.GetDynamicSitesDictionary(defaultSite);
            
            //Set Site Collection
            foreach (var keyValuePair in siteDictionary)
            {
                collection.Add(keyValuePair.Value);
            }

            ResolveInheritance(collection, siteDictionary);

            _sites = collection;
            _dynamicSiteDictionary = siteDictionary;
        }
        private void InitializeSites()
        {
            if (DynamicSiteSettings.GetSiteCache.Count() > 0 && _sites != null && _dynamicSiteDictionary.Count > 0)
            {
                return;
            }

            Assert.IsNotNullOrEmpty(_dynamicConfigPath, "No siteConfig specified in DynamicSiteProvider configuration.");
            var collection = new SiteCollection();

            var nodes = Factory.GetConfigNodes(FileUtil.MakePath(_dynamicConfigPath, "defaultsite", '/'));

            Assert.IsFalse((nodes.Count > 1 ? 1 : 0) != 0, "Duplicate Dynamic Default Site Definition.");

            if (nodes.Count == 0)
            {
                return;
            }

            var defaultSite = ParseDefaultNode(nodes[0]);

            //Create Dictionary
            var siteDictionary = DynamicSiteManager.GetDynamicSitesDictionary(defaultSite);

            //Set Site Collection
            foreach (var keyValuePair in siteDictionary)
            {
                collection.Add(keyValuePair.Value);
            }

            ResolveInheritance(collection, siteDictionary);

            _sites = collection;
            _dynamicSiteDictionary = siteDictionary;
        }
Beispiel #3
0
        private static bool CreateSiteInIIS(SiteCollection sites, SiteDTO dto)
        {
            try
            {
                var site = sites.CreateElement();
                site.Id = dto.SiteId;
                site.SetAttributeValue("name", dto.SiteName);
                sites.Add(site);

                var app = site.Applications.CreateElement();
                app.SetAttributeValue("path", "/");
                app.SetAttributeValue("applicationPool", dto.PoolName);
                site.Applications.Add(app);

                var vdir = app.VirtualDirectories.CreateElement();
                vdir.SetAttributeValue("path", "/");
                vdir.SetAttributeValue("physicalPath", string.Format(@"{0}\{1}", dto.RootDir, dto.SiteName));
                app.VirtualDirectories.Add(vdir);

                var binding = site.Bindings.CreateElement();
                binding.SetAttributeValue("protocol", "http");
                binding.SetAttributeValue("bindingInformation", string.Format(@":{0}:{1}", dto.Port, dto.SiteName));
                site.Bindings.Add(binding);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Create site {0} failed. Reason: {1}", dto.SiteName, ex.Message);
                return(false);
            }
            return(true);
        }
        private void InitializeSites()
        {
            Database database = Factory.GetDatabase(DatabaseName, false);
            if (database == null)
                return;

            if (_siteDictionary != null && _siteDictionary.Any())
                return;

            lock (_lock)
            {
                if (_siteDictionary != null && _siteDictionary.Any())
                    return;

                var sitesCollection = new SiteCollection();
                var siteDictionary = new SafeDictionary<string, Site>(StringComparer.InvariantCultureIgnoreCase);

                foreach (Item siteItem in GetSiteDeinitionItems(database))
                {
                    Site site = ResolveSite(siteItem);

                    if (site != null)
                    {
                        siteDictionary[site.Name] = site;
                        sitesCollection.Add(site);
                    }
                }

                _sitesCollection = sitesCollection;
                _siteDictionary = siteDictionary;
            }
        }
Beispiel #5
0
        public static Site AddNewWithDefaults(this SiteCollection sites)
        {
            string defaultSiteName = string.Format("Site{0}", sites.Count + 1);
            string uniquePath      = Assembly.GetCallingAssembly().ParentDirectoryPath();
            var    site            = sites.Add(defaultSiteName, uniquePath, 80);

            site.Id = sites.Max(x => x.Id) + 1;
            site.Bindings.Clear();
            return(site);
        }
        public SiteCollection GetAllSites([NotNull] IEnumerable orderedList)
        {
            var collection = new SiteCollection();

            foreach (string siteName in orderedList)
            {
                collection.Add(GetSite(siteName));
            }

            return(collection);
        }
        public SiteCollection GetAllSites([NotNull] IEnumerable orderedList)
        {
            var collection = new SiteCollection();

            foreach (string siteName in orderedList)
            {
                collection.Add(GetSite(siteName));
            }

            return collection;
            
        }
        public void CreateSiteEx(int siteId, string siteName, string poolName, string dirRoot, string Ip, int Port, string host)
        {
            try
            {
                using (ServerManager serverManager = GetServerManager())
                {
                    string bindingInfo = "";
                    if (Ip == null)
                    {
                        Ip = "*";
                    }
                    bindingInfo += Ip;
                    bindingInfo += ":";
                    bindingInfo += Port;
                    bindingInfo += ":";
                    if (host != null)
                    {
                        bindingInfo += host;
                    }

                    TestUtility.LogTrace(String.Format("#################### Adding Site {0} with App Pool {1} with BindingInfo {2} ####################", siteName, poolName, bindingInfo));

                    SiteCollection sites = serverManager.Sites;
                    Site           site  = sites.CreateElement();
                    site.Id = siteId;
                    site.SetAttributeValue("name", siteName);
                    sites.Add(site);

                    Application app = site.Applications.CreateElement();
                    app.SetAttributeValue("path", "/");
                    app.SetAttributeValue("applicationPool", poolName);
                    site.Applications.Add(app);

                    VirtualDirectory vdir = app.VirtualDirectories.CreateElement();
                    vdir.SetAttributeValue("path", "/");
                    vdir.SetAttributeValue("physicalPath", dirRoot);

                    app.VirtualDirectories.Add(vdir);

                    Binding b = site.Bindings.CreateElement();
                    b.SetAttributeValue("protocol", "http");
                    b.SetAttributeValue("bindingInformation", bindingInfo);

                    site.Bindings.Add(b);

                    serverManager.CommitChanges();
                }
            }
            catch (Exception ex)
            {
                TestUtility.LogInformation(String.Format("#################### Create site {0} failed. Reason: {1} ####################", siteName, ex.Message));
            }
        }
Beispiel #9
0
        static bool CreateSitesInIIS(SiteCollection sites, string sitePrefix, int siteId, string dirRoot)
        {
            string siteName = sitePrefix + siteId;
            // site gets set to Poolname using the following format. Example: 'Site_POOL10'
            string poolName = POOLPREFIX + sitePrefix + siteId;

            try
            {
                Site site = sites.CreateElement();
                site.Id = siteId;
                site.SetAttributeValue("name", siteName);
                sites.Add(site);

                Application app = site.Applications.CreateElement();
                app.SetAttributeValue("path", "/");
                app.SetAttributeValue("applicationPool", poolName);
                site.Applications.Add(app);

                VirtualDirectory vdir = app.VirtualDirectories.CreateElement();
                vdir.SetAttributeValue("path", "/");
                vdir.SetAttributeValue("physicalPath", dirRoot + @"\" + siteName);

                app.VirtualDirectories.Add(vdir);

                Binding b = site.Bindings.CreateElement();
                b.SetAttributeValue("protocol", "http");
                b.SetAttributeValue("bindingInformation", ":80:" + siteName);
                site.Bindings.Add(b);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Create site {0} failed. Reason: {1}", siteName, ex.Message);
                return(false);
            }

            return(true);
        }
Beispiel #10
0
        /// <summary>
        /// Get the Freedb sites
        /// </summary>
        /// <param name="protocol"></param>
        /// <param name="sites">SiteCollection that is populated with the site information</param>
        /// <returns>Response Code</returns>
        ///
        public string GetSites(string protocol, out SiteCollection sites)
        {
            if (protocol != Site.PROTOCOLS.CDDBP && protocol != Site.PROTOCOLS.HTTP)
            {
                protocol = Site.PROTOCOLS.ALL;
            }

            StringCollection coll;

            try
            {
                coll = Call(Commands.CMD_SITES, m_mainSite.GetUrl());
            }

            catch (Exception ex)
            {
                Debug.WriteLine("Error retrieving Sites." + ex.Message);
                Exception newEx = new Exception("FreedbHelper.GetSites: Error retrieving Sites.", ex);
                throw newEx;
            }

            sites = null;

            // check if results came back
            if (coll.Count < 0)
            {
                string    msg = "No results returned from sites request.";
                Exception ex  = new Exception(msg, null);
                throw ex;
            }

            string code = GetCode(coll[0]);

            if (code == ResponseCodes.CODE_INVALID)
            {
                string    msg = "Unable to process results Sites Request. Returned Data: " + coll[0];
                Exception ex  = new Exception(msg, null);
                throw ex;
            }

            switch (code)
            {
            case ResponseCodes.CODE_500:
                return(ResponseCodes.CODE_500);

            case ResponseCodes.CODE_401:
                return(ResponseCodes.CODE_401);

            case ResponseCodes.CODE_210:
            {
                coll.RemoveAt(0);
                sites = new SiteCollection();
                foreach (String line in coll)
                {
                    Debug.WriteLine("line: " + line);
                    Site site = new Site(line);
                    if (protocol == Site.PROTOCOLS.ALL)
                    {
                        sites.Add(new Site(line));
                    }
                    else if (site.Protocol == protocol)
                    {
                        sites.Add(new Site(line));
                    }
                }

                return(ResponseCodes.CODE_210);
            }

            default:
                return(ResponseCodes.CODE_500);
            }
        }
Beispiel #11
0
        private static bool CreateSiteInIIS(SiteCollection sites, SiteDTO dto)
        {
            try
            {
                var site = sites.CreateElement();
                site.Id = dto.SiteId;
                site.SetAttributeValue("name", dto.SiteName);
                sites.Add(site);

                var app = site.Applications.CreateElement();
                app.SetAttributeValue("path", "/");
                app.SetAttributeValue("applicationPool", dto.PoolName);
                site.Applications.Add(app);

                var vdir = app.VirtualDirectories.CreateElement();
                vdir.SetAttributeValue("path", "/");
                vdir.SetAttributeValue("physicalPath", string.Format(@"{0}\{1}", dto.RootDir, dto.SiteName));
                app.VirtualDirectories.Add(vdir);

                var binding = site.Bindings.CreateElement();
                binding.SetAttributeValue("protocol", "http");
                binding.SetAttributeValue("bindingInformation", string.Format(@":{0}:{1}", dto.Port, dto.SiteName));
                site.Bindings.Add(binding);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Create site {0} failed. Reason: {1}", dto.SiteName, ex.Message);
                return false;
            }
            return true;
        }
Beispiel #12
0
        public void ConfigureApplicationSite(ApplicationSiteModel applicationSite = null)
        {
            if (applicationSite == null)
            {
                applicationSite = ApplicationSiteParseConfig(applicationSiteFilePath);
            }

            if (applicationSite != null)
            {
                try {
                    if (!Directory.Exists(applicationSite.PhysicalPath.Destination))
                    {
                        _logger.InfoFormat("[{0}] - ApplicationSite PhysicalPath Destination doesn't exists, failed to copy, can't create ApplicationSite", MethodInfo.GetCurrentMethod().Name);
                        _logger.InfoFormat("[{0}] - =============================================", MethodInfo.GetCurrentMethod().Name);

                        return;
                    }

                    string applicationName = applicationSite.ApplicationName;

                    ServerManager             serverManager             = new ServerManager();
                    SiteCollection            siteCollection            = serverManager.Sites;
                    ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;

                    ApplicationPool applicationPool = applicationPoolCollection.Add(applicationName);

                    if (applicationPool != null)
                    {
                        applicationPool.AutoStart                 = true;
                        applicationPool.Enable32BitAppOnWin64     = false;
                        applicationPool.ManagedRuntimeVersion     = "v4.0";
                        applicationPool.ManagedPipelineMode       = ManagedPipelineMode.Integrated;
                        applicationPool.ProcessModel.IdentityType = ProcessModelIdentityType.ApplicationPoolIdentity;
                    }

                    string physicalPath = applicationSite.PhysicalPath.Destination;

                    Site site = siteCollection.Add(applicationName, physicalPath, 80);
                    site.ServerAutoStart = true;
                    site.ApplicationDefaults.ApplicationPoolName = applicationPool.Name;
                    site.Applications[0].ApplicationPoolName     = applicationPool.Name;

                    string protocol           = "http";
                    string ipAddress          = "*";
                    string port               = "80";
                    string hostName           = "*";
                    string bindingInformation = string.Format("{0}:{1}:{2}", ipAddress, port, hostName);

                    site.Bindings.Clear();
                    foreach (BindingInformationModel itemBindingInformation in applicationSite.BindingInformation)
                    {
                        protocol           = itemBindingInformation.Protocol;
                        ipAddress          = itemBindingInformation.IPAddress;
                        port               = itemBindingInformation.Port;
                        hostName           = itemBindingInformation.HostName;
                        bindingInformation = string.Format("{0}:{1}:{2}", ipAddress, port, hostName);

                        site.Bindings.Add(bindingInformation, protocol);
                    }

                    serverManager.CommitChanges();

                    _logger.InfoFormat("[{0}] - ApplicationSite created", MethodInfo.GetCurrentMethod().Name);
                    _logger.InfoFormat("[{0}] - =============================================", MethodInfo.GetCurrentMethod().Name);
                } catch (Exception ex) {
                    _logger.Error(string.Format("[{0}] - Problem on parse ApplicationSite config. Message: {1}", MethodInfo.GetCurrentMethod().Name, ex.Message), ex);
                    _logger.InfoFormat("[{0}] - =============================================", MethodInfo.GetCurrentMethod().Name);
                }
            }
            else
            {
                _logger.InfoFormat("[{0}] - ApplicationSite file config not found, can't create ApplicationSite", MethodInfo.GetCurrentMethod().Name);
                _logger.InfoFormat("[{0}] - =============================================", MethodInfo.GetCurrentMethod().Name);
            }
        }