예제 #1
0
        /// <summary>
        /// Queries the status and other configuration properties of an AppPool.
        /// </summary>
        /// <param name="name">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></returns>
        public static AppPoolConfig QueryStatus(string name, bool useWildcard, string machineName)
        {
            AppPoolConfig config = new AppPoolConfig()
            {
                AppPoolName = name,
                ServerName  = machineName
            };

            ManagementObjectCollection pools = GetAppPoolSettings(name, useWildcard, machineName);

            foreach (ManagementObject pool in pools)
            {
                String appPoolState = pool["AppPoolState"].ToString();
                try
                {
                    config.State = ((AppPoolReturnCode)Enum.Parse(typeof(AppPoolReturnCode), appPoolState, false)).ToString();
                }
                catch
                {
                    config.State = "Unknown State (" + appPoolState + ")";
                }
            }

            return(config);
        }
예제 #2
0
 public void Add(AppPoolConfig pool)
 {
     lock (AppPools)
     {
         AppPools.Add(pool);
     }
 }