public virtual void Start() { Log.Info($"Starting website {ID}"); if (IsDisabled) { throw new InvalidOperationException("The {0} website is disabled. Open IIS Manager and remove _disabled suffix from its name in order to enable the website."); } using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { Site site = GetSite(context); Assert.IsNotNull(site, "Site is missing"); ApplicationPool pool = GetPool(context); Assert.IsNotNull(pool, nameof(pool)); if (!IsStarted(pool)) { pool.Start(); context.CommitChanges(); } } using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { Site site = GetSite(context); Assert.IsNotNull(site, "Site is missing"); if (!IsStarted(site)) { site.Start(); context.CommitChanges(); } } }
public virtual void Stop(bool?force = null) { Log.Info($"Stop website {Name} ({ID})"); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { ApplicationPool pool = GetPool(context); if (force ?? false) { foreach (WorkerProcess workerProcess in pool.WorkerProcesses) { try { Process process = Process.GetProcessById(workerProcess.ProcessId); process.Kill(); } catch (Exception ex) { Log.Warn(ex, $"Stop website {Name} ({ID}) failed"); } } } if (IsStarted(pool)) { pool.Stop(); context.CommitChanges(); } } }
public virtual void Stop(bool force = false) { Log.Info("Stop website {0} ({1})", this.Name, this.ID); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext("Website.Stop")) { ApplicationPool pool = this.GetPool(context); if (force) { foreach (WorkerProcess workerProcess in pool.WorkerProcesses) { try { Process process = Process.GetProcessById(workerProcess.ProcessId); process.Kill(); } catch (Exception ex) { Log.Warn(ex, "Stop website {0} ({1}) failed", this.Name, this.ID); } } } if (this.IsStarted(pool)) { pool.Stop(); context.CommitChanges(); } } }
public virtual void Start() { Log.Info("Starting website {0}", this.ID); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext("Website.Start")) { Site site = this.GetSite(context); Assert.IsNotNull(site, "Site is missing"); ApplicationPool pool = this.GetPool(context); Assert.IsNotNull(pool, "pool"); if (!this.IsStarted(pool)) { pool.Start(); context.CommitChanges(); } } using (WebServerManager.WebServerContext context = WebServerManager.CreateContext("Website.Start")) { Site site = this.GetSite(context); Assert.IsNotNull(site, "Site is missing"); if (!IsStarted(site)) { site.Start(); context.CommitChanges(); } } }
public virtual void StopApplicationPool() { Log.Info($"Stop app pool {Name} ({ID})"); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { ApplicationPool pool = GetPool(context); if (IsStarted(pool)) { pool.Stop(); context.CommitChanges(); } } }
public virtual void Recycle() { Log.Info($"Recycle the {Name} instance's application pool"); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { ApplicationPool pool = GetPool(context); if (IsStarted(pool)) { pool.Recycle(); context.CommitChanges(); } } }
public virtual void StopApplicationPool() { Log.Info("Stop app pool {0} ({1})", this.Name, this.ID); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext("Website.StopApplicationPool")) { ApplicationPool pool = this.GetPool(context); if (this.IsStarted(pool)) { pool.Stop(); context.CommitChanges(); } } }
public virtual void Recycle() { Log.Info("Recycle the {0} instance's application pool", this.Name); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext("Website.Recycle")) { ApplicationPool pool = this.GetPool(context); if (this.IsStarted(pool)) { pool.Recycle(); context.CommitChanges(); } } }
public virtual void SetAppPoolMode(bool?is40 = null, bool?is32 = null) { using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { ApplicationPool pool = GetPool(context); if (is32 != null) { pool.Enable32BitAppOnWin64 = (bool)is32; } if (is40 != null) { pool.SetAttributeValue("managedRuntimeVersion", (bool)is40 ? "v4.0" : "v2.0"); } context.CommitChanges(); } }
public virtual string GetName(WebServerManager.WebServerContext context) { return this.GetSite(context).Name; }