This topic has not yet been rated - Rate this topic

ApplicationPool Class

IIS 7.0

Provides methods and properties to configure and manage IIS 7 application pools.

System..::..Object
  Microsoft.Web.Administration..::..ConfigurationElement
    Microsoft.Web.Administration..::..ApplicationPool

Namespace:  Microsoft.Web.Administration
Assembly:  Microsoft.Web.Administration (in Microsoft.Web.Administration.dll)
public sealed class ApplicationPool : ConfigurationElement

The ApplicationPool type exposes the following members.

  Name Description
Public property Attributes Gets a configuration attribute collection that contains the list of attributes for this element. (Inherited from ConfigurationElement.)
Public property AutoStart Gets or sets a value indicating whether the current application pool starts automatically when IIS starts.
Public property ChildElements Gets all the child elements of the current element. (Inherited from ConfigurationElement.)
Public property Cpu Gets CPU usage parameters for the current application pool.
Public property ElementTagName Gets the XML tag name of the current element. (Inherited from ConfigurationElement.)
Public property Enable32BitAppOnWin64 Gets or sets a value indicating whether to allow 32-bit applications to run on a computer that has a 64-bit processor.
Public property Failure Gets actions to take when the current application pool fails.
Public property IsLocallyStored Gets a value indicating whether the configuration element is stored in a particular configuration file. (Inherited from ConfigurationElement.)
Public property Item Gets or sets an attribute with the specified name. (Inherited from ConfigurationElement.)
Public property ManagedPipelineMode Gets or sets a value that indicates the pipeline mode of managed applications in the current application pool.
Public property ManagedRuntimeVersion Gets or sets the version of the .NET Framework that is used for managed applications in the current application pool.
Public property Methods Gets a collection of methods for the configuration element. (Inherited from ConfigurationElement.)
Public property Name Gets or sets the name of the current application pool.
Public property ProcessModel Gets the process management attributes for the current application pool.
Public property QueueLength Gets or sets the maximum number of requests to queue in an application pool before rejecting requests.
Public property RawAttributes Gets the raw attribute names and values for the current configuration element. (Inherited from ConfigurationElement.)
Public property Recycling Gets recycling settings for the current application pool.
Public property Schema Gets the schema for the current element. (Inherited from ConfigurationElement.)
Public property State Gets the run-time state of the current application pool.
Public property WorkerProcesses Gets the collection of worker processes that service the current application pool.
Top
  Name Description
Public method Delete (Inherited from ConfigurationElement.)
Public method Equals (Inherited from Object.)
Protected method Finalize (Inherited from Object.)
Public method GetAttribute Returns a ConfigurationAttribute object that represents the requested attribute. (Inherited from ConfigurationElement.)
Public method GetAttributeValue Returns the value of the specified attribute. (Inherited from ConfigurationElement.)
Public method GetChildElement(String) Returns a child element that is under the current configuration element and has the specified name. (Inherited from ConfigurationElement.)
Public method GetChildElement(String, Type) Returns a child element that is under the current configuration element and has the specified name and type. (Inherited from ConfigurationElement.)
Public method GetCollection()()()() Returns the default collection for the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(String) Returns all configuration elements that belong to the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(Type) Returns the configuration element that has the specified type and is under the current configuration element. (Inherited from ConfigurationElement.)
Public method GetCollection(String, Type) Returns the configuration element that has the specified name and type and is under the current configuration element. (Inherited from ConfigurationElement.)
Public method GetHashCode (Inherited from Object.)
Public method GetMetadata Returns metadata values from the element schema. (Inherited from ConfigurationElement.)
Public method GetType (Inherited from Object.)
Protected method MemberwiseClone (Inherited from Object.)
Public method Recycle Recycles the current application pool.
Public method SetAttributeValue Sets the value of the specified attribute. (Inherited from ConfigurationElement.)
Public method SetMetadata Sets metadata values from the element schema. (Inherited from ConfigurationElement.)
Public method Start Starts the current application pool.
Public method Stop Stops the current application pool.
Public method ToString (Inherited from Object.)
Top

This class provides configuration and management functionality for application pools. Properties of this class generally correspond directly to the attributes of the applicationPools configuration element in the IIS 7 configuration system.

Application pools are associated with worker processes, contain one or more applications, and provide isolation among different applications.

The following example implements several of the methods and properties of the ApplicationPool class. This example retrieves the ApplicationPool objects in the service module, modifies the property values of the ApplicationPool objects, places the objects into a property bag, and displays the property values in the page module.

Service module:


// Gets the application pool collection from the server.
[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetApplicationPoolCollection()
{
    // Use an ArrayList to transfer objects to the client.
    ArrayList arrayOfApplicationBags = new ArrayList();

    ServerManager serverManager = new ServerManager();
    ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
    foreach (ApplicationPool applicationPool in applicationPoolCollection)
    {
        PropertyBag applicationPoolBag = new PropertyBag();
        applicationPoolBag[ServerManagerDemoGlobals.ApplicationPoolArray] = applicationPool;
        arrayOfApplicationBags.Add(applicationPoolBag);
        // If the applicationPool is stopped, restart it.
        if (applicationPool.State == ObjectState.Stopped)
        {
            applicationPool.Start();
        }
        // Set the CPU limit to a maximum of 25.
        if (applicationPool.Cpu.Limit > 25)
        {
            applicationPool.Cpu.Limit = 25;
        }
        // Set the process model max process to 1 to prohibit Web Garden
        if (applicationPool.ProcessModel.MaxProcesses > 1)
        {
            applicationPool.ProcessModel.MaxProcesses = 1;
        }
        // Set the recycling time to a maximum of one day (1440 minutes).
        if (applicationPool.Recycling.PeriodicRestart.Time.TotalMinutes > 1440)
        {
            applicationPool.Recycling.PeriodicRestart.Time = TimeSpan.FromMinutes(1440);
        }
    }

    // CommitChanges to persist the changes to the ApplicationHost.config.
    serverManager.CommitChanges();
    return arrayOfApplicationBags;
}


Page module:


// Get the ApplicationPool collection
ArrayList applicationPoolCollectionArray = _serviceProxy.GetApplicationPoolCollection();
string applicationdisplay = null;
applicationdisplay = "\nThere are " +
    applicationPoolCollectionArray.Count.ToString() + " applicationPools.\n";
foreach (PropertyBag bag in applicationPoolCollectionArray)
{
    ApplicationPool applicationPool = (ApplicationPool)bag[ServerManagerDemoGlobals.ApplicationPoolArray];
    applicationdisplay += "  " + applicationPool.Name + ":\n";
    applicationdisplay += "    FrameworkVersion - " + applicationPool.ManagedRuntimeVersion + "\n";
    applicationdisplay += "    State: " + applicationPool.State + "\n";
    applicationdisplay += "    WorkerProcesses: " + applicationPool.WorkerProcesses.Count + "\n";
    foreach (WorkerProcess workerProcess in applicationPool.WorkerProcesses)
    {
        applicationdisplay += "       " + workerProcess.ToString() + "\n";
    }
    applicationdisplay += "    CPU limit: " + applicationPool.Cpu.Limit.ToString() + "\n";
    applicationdisplay += "    MaxProcesses: " + applicationPool.ProcessModel.MaxProcesses.ToString() + "\n";
    applicationdisplay += "    Restart time: " + applicationPool.Recycling.PeriodicRestart.Time.TotalMinutes + "\n\n";
}


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ