コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <summary>
        /// Wmi query for IIsApplicationPoolSetting for an AppPool.
        /// </summary>
        /// <param name="appPoolName">The AppPool name.</param>
        /// <param name="useWildcard">Uses a wildcard in searching for the AppPool by name ["%{0}%"].</param>
        /// <param name="machineName">The server on which the AppPool is running.</param>
        /// <returns>The Wmi ManagementObjectCollection for the AppPool.</returns>
        static ManagementObjectCollection GetAppPoolSettings(string appPoolName, bool useWildcard, string machineName)
        {
            if (useWildcard)
            {
                appPoolName = string.IsNullOrWhiteSpace(appPoolName) ? "%" : string.Format("%{0}%", appPoolName);
            }

            ObjectQuery query =
                new ObjectQuery(string.Format("SELECT * FROM IIsApplicationPoolSetting WHERE Name = 'W3SVC/AppPools/{0}'", appPoolName));
            IisAppPoolUtilWmiHelper helper = new IisAppPoolUtilWmiHelper(machineName);

            return(helper.Query(query, WmiPath.IIS));
        }