示例#1
0
        public List <SiteDTO> GetSites(string domain = "localhost")
        {
            var sites   = new List <SiteDTO>();
            var manager = new ServerManager();

            foreach (var site in manager.Sites)
            {
                var webSite = new SiteDTO()
                {
                    Name         = site.Name,
                    Identity     = Convert.ToInt32(site.Id),
                    PhysicalPath = site.Applications["/"].VirtualDirectories["/"].PhysicalPath,
                    ServerStatus = ServerStatus.GetStatus((int)site.State),
                    AppPoolName  = site.Applications["/"].ApplicationPoolName
                };

                foreach (var app in site.Applications)
                {
                    if (app.Path == "/")
                    {
                        continue;
                    }

                    var appSite = new ApplicationSiteDTO()
                    {
                        AppPoolName  = app.ApplicationPoolName,
                        Name         = app.Path,
                        PhysicalPath = app.VirtualDirectories["/"].PhysicalPath,
                    };

                    webSite.Applications.Add(appSite);
                }

                sites.Add(webSite);
            }

            return(sites);
        }
示例#2
0
        static ServerStatus GetSiteStatus(DirectoryEntry server)
        {
            var state = Convert.ToInt32(server.Properties["ServerState"].Value);

            return(ServerStatus.GetStatus(state));
        }