/// <summary> /// 操作应用程序池 (回收、停止、重启) /// </summary> /// <param name="operateAppPoolType">操作类型</param> /// <param name="appPoolName">应用程序池名称</param> /// <param name="logInsance">日志实例</param> /// <returns></returns> private static bool OperateAppPool(OperateAppPoolType operateAppPoolType, string appPoolName, string logInsance) { LogInfoWriter.GetInstance(logInsance).Info($"{operateAppPoolType}AppPool info appName:{appPoolName}"); var appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); var findPool = appPool.Children.Find(appPoolName, "IIsApplicationPool"); findPool.Invoke(operateAppPoolType.ToString(), null); appPool.CommitChanges(); appPool.Close(); return(true); }
/// <summary> /// 操作应用程序池 (回收、停止、重启) /// </summary> /// <param name="operateAppPoolType">操作类型</param> /// <param name="appPoolName">应用程序池名称</param> /// <param name="logInstanceName">日志实例</param> /// <returns></returns> private static bool OperateAppPool(OperateAppPoolType operateAppPoolType, string appPoolName, string logInstanceName) { //LogInfoWriter.GetInstance(logInstanceName).Info($"{operateAppPoolType}AppPool info appName:{appPoolName}"); // var appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); // var findPool = appPool.Children.Find(appPoolName, "IIsApplicationPool"); // findPool.Invoke(operateAppPoolType.ToString(), null); // appPool.CommitChanges(); // appPool.Close(); try { using (var mgr = new ServerManager(ApplicationHostConfigurationPath)) { var pool = mgr.ApplicationPools[appPoolName]; if (pool == null) { throw new Exception($"the {operateAppPoolType} AppPool is not exist!"); } switch (operateAppPoolType) { case OperateAppPoolType.Recycle: if (pool.State == ObjectState.Started || pool.State == ObjectState.Starting) { pool.Recycle(); } break; case OperateAppPoolType.Start: pool.Start(); break; case OperateAppPoolType.Stop: if (pool.State == ObjectState.Started || pool.State == ObjectState.Starting) { pool.Stop(); } break; } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(true); }