/// <summary> /// Creates a new AppPool. /// </summary> /// <param name="name">The AppPool name.</param> /// <param name="machineName">The server on which the AppPool will be created.</param> /// <param name="millisecondsTimeout">Timeout value on wait for Create to complete.</param> /// <returns>The Wmi ManagementPath</returns> public static ManagementPath Create(string name, string machineName, int millisecondsTimeout, string managedRunTimeVersion = "v4.0", int identityType = 4, string username = null, string password = null) { PutOptions options = new PutOptions(); options.Timeout = System.TimeSpan.FromMinutes(Convert.ToDouble(millisecondsTimeout)); IisAppPoolUtilWmiHelper helper = new IisAppPoolUtilWmiHelper(machineName); ManagementObject appPool = helper.CreateManagementObject("IIsApplicationPoolSetting"); appPool.Properties["Name"].Value = string.Format("W3SVC/AppPools/{0}", name); appPool.Properties["AppPoolIdentityType"].Value = identityType; appPool.Properties["ManagedRuntimeVersion"].Value = managedRunTimeVersion; if (identityType == 3) { if (username != null) { appPool.Properties["WAMUserName"].Value = username; } if (password != null) { appPool.Properties["WAMUserPass"].Value = password; } } return(appPool.Put(options)); }
/// <summary> /// Wmi query for IIsApplicationPool object. /// </summary> /// <param name="name">The AppPool name.</param> /// <param name="machineName">The server on which the AppPool is running.</param> /// <param name="millisecondsTimeout">Timeout value on ManagementOptions object.</param> /// <param name="options"></param> /// <returns>The Wmi AppPool ManagementObject</returns> static ManagementObject GetAppPoolManagementObject(string name, string machineName, int millisecondsTimeout, ref ManagementOptions options) { IisAppPoolUtilWmiHelper helper = new IisAppPoolUtilWmiHelper(machineName); ManagementObject appPool = helper.CreateManagementObject("IIsApplicationPool"); appPool.Properties["Name"].Value = string.Format("W3SVC/AppPools/{0}", name); options.Timeout = System.TimeSpan.FromMinutes(Convert.ToDouble(millisecondsTimeout)); return(appPool); }