Share via


ApplicationPool Class

Definition

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

public ref class ApplicationPool sealed : Microsoft::Web::Administration::ConfigurationElement
public sealed class ApplicationPool : Microsoft.Web.Administration.ConfigurationElement
type ApplicationPool = class
    inherit ConfigurationElement
Public NotInheritable Class ApplicationPool
Inherits ConfigurationElement
Inheritance
ApplicationPool

Examples

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";
}

Remarks

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.

Properties

Attributes

Gets a configuration attribute collection that contains the list of attributes for this element.

(Inherited from ConfigurationElement)
AutoStart

Gets or sets a value indicating whether the current application pool starts automatically when IIS starts.

ChildElements

Gets all the child elements of the current element.

(Inherited from ConfigurationElement)
Cpu

Gets CPU usage parameters for the current application pool.

ElementTagName (Inherited from ConfigurationElement)
Enable32BitAppOnWin64

Gets or sets a value indicating whether to allow 32-bit applications to run on a computer that has a 64-bit processor.

Failure

Gets actions to take when the current application pool fails.

IsLocallyStored

Gets a value indicating whether the configuration element is stored in a particular configuration file.

(Inherited from ConfigurationElement)
Item[String]

Gets or sets an attribute with the specified name.

(Inherited from ConfigurationElement)
ManagedPipelineMode

Gets or sets a value that indicates the pipeline mode of managed applications in the current application pool.

ManagedRuntimeVersion

Gets or sets the version of the .NET Framework that is used for managed applications in the current application pool.

Methods

Gets a collection of methods for the configuration element.

(Inherited from ConfigurationElement)
Name

Gets or sets the name of the current application pool.

ProcessModel

Gets the process management attributes for the current application pool.

QueueLength

Gets or sets the maximum number of requests to queue in an application pool before rejecting requests.

RawAttributes (Inherited from ConfigurationElement)
Recycling

Gets recycling settings for the current application pool.

Schema

Gets the schema for the current element.

(Inherited from ConfigurationElement)
StartMode
State

Gets the run-time state of the current application pool.

WorkerProcesses

Gets the collection of worker processes that service the current application pool.

Methods

Delete() (Inherited from ConfigurationElement)
GetAttribute(String)

Returns a ConfigurationAttribute object that represents the requested attribute.

(Inherited from ConfigurationElement)
GetAttributeValue(String)

Returns the value of the specified attribute.

(Inherited from ConfigurationElement)
GetChildElement(String, Type)

Returns a child element that is under the current configuration element and has the specified name and type.

(Inherited from ConfigurationElement)
GetChildElement(String)

Returns a child element that is under the current configuration element and has the specified name.

(Inherited from ConfigurationElement)
GetCollection()

Returns the default collection for the current configuration element.

(Inherited from ConfigurationElement)
GetCollection(String, Type)

Returns the configuration element that has the specified name and type and is under the current configuration element.

(Inherited from ConfigurationElement)
GetCollection(String)

Returns all configuration elements that belong to the current configuration element.

(Inherited from ConfigurationElement)
GetCollection(Type)

Returns the configuration element that has the specified type and is under the current configuration element.

(Inherited from ConfigurationElement)
GetMetadata(String)

Returns metadata values from the element schema.

(Inherited from ConfigurationElement)
Recycle()

Recycles the current application pool.

SetAttributeValue(String, Object)

Sets the value of the specified attribute.

(Inherited from ConfigurationElement)
SetMetadata(String, Object)

Sets metadata values from the element schema.

(Inherited from ConfigurationElement)
Start()

Starts the current application pool.

Stop()

Stops the current application pool.

Applies to

See also