ApplicationPool Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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 |
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. |