public override IISResultInfo <List <IISAppPoolInfo> > GetAllPoolInfos() { var data = new IISResultInfo <List <IISAppPoolInfo> >(); var list = new List <IISAppPoolInfo>(); try { using (var iisManager = new ServerManager()) { foreach (var item in iisManager.ApplicationPools) { list.Add(new IISAppPoolInfo() { Name = item.Name, Enable32BitAppOnWin64 = item.Enable32BitAppOnWin64, ManagedRuntimeVersion = item.ManagedRuntimeVersion, State = (AppPoolState)((int)item.State), AppPoolAutoStart = item.AutoStart, //WorkerProcessesCount = item.WorkerProcesses.LongCount(), //MaxProcessesCount = item.ProcessModel.MaxProcesses, IdentityType = item.ProcessModel.IdentityType.ToString().ToEnum <AppPoolIdentityType>(), AnonymousUserName = item.ProcessModel.UserName }); } } data.Data = list; } catch (Exception e) { data.SetError(e); } return(data); }
public override IISResultInfo <List <IISAppPoolInfo> > GetAllPoolInfos() { var data = new IISResultInfo <List <IISAppPoolInfo> >(); var list = new List <IISAppPoolInfo>(); try { var rootEntity = GetAppPoolRootEntry(); foreach (DirectoryEntry item in rootEntity.Children) { list.Add(new IISAppPoolInfo() { Name = item.Name, //Site = item.Site.Name, //Path = item.Path, IdentityType = item.Properties["AppPoolIdentityType"].GetFirstValue().ToEnum <AppPoolIdentityType>(), AnonymousUserName = item.Properties["WAMUserName"].GetFirstValue(string.Empty), ManagedRuntimeVersion = item.Properties["ManagedRuntimeVersion"].GetFirstValue(), State = (AppPoolState)(item.Properties["AppPoolState"].GetFirstValue().ToInt() - 1), AppPoolAutoStart = item.Properties["AppPoolAutoStart"].GetFirstValue().ToBool(), Enable32BitAppOnWin64 = item.Properties["Enable32BitAppOnWin64"].GetFirstValue().ToBool(), //WorkerProcessesCount = item.Properties["WorkerProcessesCount"].GetFirstValue().ToLong(), //MaxProcessesCount = item.Properties["AspProcessorThreadMax"].GetFirstValue().ToLong() }); } data.Data = list; rootEntity.Close(); } catch (Exception e) { Trace.TraceError("{0} Exception:{1}", DateTime.Now.ToString(), e.ToString()); data.SetError(e); } return(data); }
public override IISResultInfo StopAppPool(string appPoolName) { var ret = new IISResultInfo(); try { HandleAppPool(appPoolName, "Stop"); } catch (Exception e) { ret.SetError(e.Message, 500); } return(ret); }
public override IISResultInfo RecycleAppPool(string appPoolName) { var ret = new IISResultInfo(); if (string.IsNullOrWhiteSpace(appPoolName)) { return(ret.SetError("appPoolName is null", 404)); } try { HandleAppPool(appPoolName, "Recycle"); } catch (Exception e) { ret.SetError(e.Message, 500); } return(ret); }
public override IISResultInfo StopSite(IISStartInfo info) { var ret = new IISResultInfo(); try { var siteEntry = GetByPath(info); if (siteEntry == null) { return(ret.SetError("站点不存在", 404)); } siteEntry.Invoke("Stop", null); siteEntry.Dispose(); } catch (Exception e) { ret.SetError(e.Message, 500); } return(ret); }
public override IISResultInfo StartSite(IISStartInfo info) { var data = new IISResultInfo(); try { using (var iisManager = new ServerManager()) { var site = iisManager.Sites.FirstOrDefault(p => p.Id == info.ParentID); if (site == null) { return(data.SetError("site not found", 404)); } switch (site.State) { case ObjectState.Starting: break; case ObjectState.Started: break; case ObjectState.Stopping: case ObjectState.Stopped: case ObjectState.Unknown: site.Start(); break; default: throw new ArgumentOutOfRangeException(); } } } catch (Exception e) { data.SetError(e); } return(data); }
public override IISResultInfo <List <IISSiteInfo> > GetAllSites() { var data = new IISResultInfo <List <IISSiteInfo> >(); var list = new List <IISSiteInfo>(); try { using (ServerManager iisManager = new ServerManager()) { foreach (var item in iisManager.Sites) { list.Add(new IISSiteInfo() { Name = item.Name, ID = item.Id, ServerAutoStart = item.ServerAutoStart, ServerBindings = string.Join(",", item.Bindings.Cast <Binding>().Where(p => p.Protocol.StartsWith("http", StringComparison.InvariantCultureIgnoreCase)).Select(p => ":{0}:{1}".FormatWith(p.EndPoint.Port, p.Host))), DefaultDoc = string.Join(",", item.GetWebConfiguration().GetSection("system.webServer/defaultDocument").GetCollection("files").Select(p => p["value"])), State = item.State.ToServerState(), Applications = new List <SiteApplicationInfo>( item.Applications.Select(p => new SiteApplicationInfo() { Path = p.Path.TrimStart('/'), PhysicalPath = p.VirtualDirectories["/"].PhysicalPath, PoolName = p.ApplicationPoolName })), }); } } data.Data = list; } catch (Exception e) { data.SetError(e); } return(data); }
public override IISResultInfo RecycleAppPool(string appPoolName) { var data = new IISResultInfo(); try { using (var iisManager = new ServerManager()) { var appPool = iisManager.ApplicationPools.FirstOrDefault(p => p.Name == appPoolName); if (appPool == null) { return(data.SetError("appPool not found", 404)); } switch (appPool.State) { case ObjectState.Starting: break; case ObjectState.Started: appPool.Recycle(); break; case ObjectState.Stopping: case ObjectState.Stopped: case ObjectState.Unknown: break; default: throw new ArgumentOutOfRangeException(); } } } catch (Exception e) { data.SetError(e); } return(data); }
public override IISResultInfo <List <IISSiteInfo> > GetAllSites() { var data = new IISResultInfo <List <IISSiteInfo> >(); var list = new List <IISSiteInfo>(); try { var rootEntity = GetWebRootEntry(); foreach (DirectoryEntry item in rootEntity.Children) { if (item.SchemaClassName == IIS_WEBSERVER) { var site = new IISSiteInfo(); site.ID = item.Name.ToLong(); site.Name = item.Properties["ServerComment"].GetFirstValue(); site.State = item.Properties["ServerState"].GetFirstValue().ToEnum <ServerState>(); site.ServerAutoStart = item.Properties["ServerAutoStart"].GetFirstValue().ToBool(); site.ServerBindings = string.Join(",", item.Properties["ServerBindings"].GetAllValue()); //site.AnonymousUserName = item.Properties["AnonymousUserName"].GetFirstValue(); site.DefaultDoc = item.Properties["DefaultDoc"].GetFirstValue(); //site.EnableDirBrowsing = item.Properties["EnableDirBrowsing"].GetFirstValue().ToBool(); //site.DefaultDoc = item.Properties["EnableDirBrowsing"].GetFirstValue(); var apps = new List <SiteApplicationInfo>(); foreach (DirectoryEntry item1 in item.Children) { if (item1.SchemaClassName != IIS_WEBVIRTUALDIR && item1.SchemaClassName != IIS_WEBDIRECTORY) { continue; } apps.Add(new SiteApplicationInfo() { Path = "", //Path = item1.Name, //Path = item1.Path, //Name = null, PoolName = item1.Properties["AppPoolId"].Value.ToStringEx() }); foreach (DirectoryEntry item2 in item1.Children) { apps.Add(new SiteApplicationInfo() { //Path = item2.Path, Path = item2.Name, PoolName = item2.Properties["AppPoolId"].Value.ToStringEx() }); } } site.Applications = apps; list.Add(site); } } data.Data = list; rootEntity.Close(); } catch (Exception e) { data.SetError(e); } return(data); }