AppPoolService-IIS應用程序池輔助類(C#控製應用程序池操作)
using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using Microsoft.Web.Administration; //位於:C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll namespace Whir.Software.IISManager.IISManager { /// <summary> /// IIS應用程序池輔助類 /// </summary> public class AppPoolService { protected static string Host = "localhost"; /// <summary> /// 取得所有應用程序池 /// </summary> /// <returns></returns> public static List<string> GetAppPools() { var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host)); return (from DirectoryEntry entry in appPools.Children select entry.Name).ToList(); } /// <summary> /// 取得單個應用程序池 /// </summary> /// <returns></returns> public static ApplicationPool GetAppPool(string appPoolName) { ApplicationPool app = null; var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host)); foreach (DirectoryEntry entry in appPools.Children) { if (entry.Name == appPoolName) { var manager = new ServerManager(); app = manager.ApplicationPools[appPoolName]; } } return app; } /// <summary> /// 判斷程序池是否存在 /// </summary> /// <param name="appPoolName">程序池名稱</param> /// <returns>true存在 false不存在</returns> public static bool IsAppPoolExsit(string appPoolName) { bool result = false; var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host)); foreach (DirectoryEntry entry in appPools.Children) { if (entry.Name.Equals(appPoolName)) { result = true; break; } } return result; } /// <summary> /// 刪除指定程序池 /// </summary> /// <param name="appPoolName">程序池名稱</param> /// <returns>true刪除成功 false刪除失敗</returns> public static bool DeleteAppPool(string appPoolName) { bool result = false; var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host)); foreach (DirectoryEntry entry in appPools.Children) { if (entry.Name.Equals(appPoolName)) { try { entry.DeleteTree(); result = true; break; } catch { result = false; } } } return result; } /// <summary> /// 創建應用程序池 /// </summary> /// <param name="appPool"></param> /// <returns></returns> public static bool CreateAppPool(string appPool) { try { if (!IsAppPoolExsit(appPool)) { var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host)); DirectoryEntry entry = appPools.Children.Add(appPool, "IIsApplicationPool"); entry.CommitChanges(); return true; } } catch { return false; } return false; } /// <summary> /// 編輯應用程序池 /// </summary> /// <param name="application"></param> /// <returns></returns> public static bool EditAppPool(ApplicationPool application) { try { if (IsAppPoolExsit(application.Name)) { var manager = new ServerManager(); manager.ApplicationPools[application.Name].ManagedRuntimeVersion = application.ManagedRuntimeVersion; manager.ApplicationPools[application.Name].ManagedPipelineMode = application.ManagedPipelineMode; //托管模式Integrated為集成 Classic為經典 manager.CommitChanges(); return true; } } catch { return false; } return false; } } }
最後更新:2017-04-03 08:26:21