ApplicationPool ApplicationPool ApplicationPool 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

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 Attributes Attributes Attributes

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

(Inherited from ConfigurationElement)
AutoStart AutoStart AutoStart AutoStart

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

ChildElements ChildElements ChildElements ChildElements

Gets all the child elements of the current element.

(Inherited from ConfigurationElement)
Cpu Cpu Cpu Cpu

Gets CPU usage parameters for the current application pool.

ElementTagName ElementTagName ElementTagName ElementTagName Inherited from ConfigurationElement
Enable32BitAppOnWin64 Enable32BitAppOnWin64 Enable32BitAppOnWin64 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 Failure Failure Failure

Gets actions to take when the current application pool fails.

IsLocallyStored IsLocallyStored IsLocallyStored IsLocallyStored

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

(Inherited from ConfigurationElement)
Item[String] Item[String] Item[String] Item[String]

Gets or sets an attribute with the specified name.

(Inherited from ConfigurationElement)
ManagedPipelineMode ManagedPipelineMode ManagedPipelineMode ManagedPipelineMode

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

ManagedRuntimeVersion ManagedRuntimeVersion ManagedRuntimeVersion ManagedRuntimeVersion

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

Methods Methods Methods Methods

Gets a collection of methods for the configuration element.

(Inherited from ConfigurationElement)
Name Name Name Name

Gets or sets the name of the current application pool.

ProcessModel ProcessModel ProcessModel ProcessModel

Gets the process management attributes for the current application pool.

QueueLength QueueLength QueueLength QueueLength

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

RawAttributes RawAttributes RawAttributes RawAttributes Inherited from ConfigurationElement
Recycling Recycling Recycling Recycling

Gets recycling settings for the current application pool.

Schema Schema Schema Schema

Gets the schema for the current element.

(Inherited from ConfigurationElement)
StartMode StartMode StartMode StartMode
State State State State

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

WorkerProcesses WorkerProcesses WorkerProcesses WorkerProcesses

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

Methods

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

Returns a ConfigurationAttribute object that represents the requested attribute.

(Inherited from ConfigurationElement)
GetAttributeValue(String) GetAttributeValue(String) GetAttributeValue(String) GetAttributeValue(String)

Returns the value of the specified attribute.

(Inherited from ConfigurationElement)
GetChildElement(String) GetChildElement(String) GetChildElement(String) GetChildElement(String)

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

(Inherited from ConfigurationElement)
GetChildElement(String, Type) GetChildElement(String, Type) GetChildElement(String, Type) GetChildElement(String, Type)

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

(Inherited from ConfigurationElement)
GetCollection() GetCollection() GetCollection() GetCollection()

Returns the default collection for the current configuration element.

(Inherited from ConfigurationElement)
GetCollection(String) GetCollection(String) GetCollection(String) GetCollection(String)

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

(Inherited from ConfigurationElement)
GetCollection(String, Type) GetCollection(String, Type) GetCollection(String, Type) 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(Type) GetCollection(Type) GetCollection(Type) GetCollection(Type)

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

(Inherited from ConfigurationElement)
GetMetadata(String) GetMetadata(String) GetMetadata(String) GetMetadata(String)

Returns metadata values from the element schema.

(Inherited from ConfigurationElement)
Recycle() Recycle() Recycle() Recycle()

Recycles the current application pool.

SetAttributeValue(String, Object) SetAttributeValue(String, Object) SetAttributeValue(String, Object) SetAttributeValue(String, Object)

Sets the value of the specified attribute.

(Inherited from ConfigurationElement)
SetMetadata(String, Object) SetMetadata(String, Object) SetMetadata(String, Object) SetMetadata(String, Object)

Sets metadata values from the element schema.

(Inherited from ConfigurationElement)
Start() Start() Start() Start()

Starts the current application pool.

Stop() Stop() Stop() Stop()

Stops the current application pool.

Applies to

See also