Recycling Settings for an Application Pool <recycling>
Overview
The <recycling>
element contains configuration settings that control the conditions that trigger IIS 7 to restart an application pool. You can also control the types of events IIS writes to the event log when the application pool recycles.
You can specify that IIS recycle an application pool at set intervals (such as every 180 minutes), at a specific time each day, or after the application pool receives a certain number of requests. You can also configure the <recycling>
element to restart the application pool when the worker process virtual memory and physical memory usage reaches a specific threshold.
You can use the <recycling>
element to specify two classes of events to log to the event log when IIS recycles an application pool. The first class contains recycling events that you can configure, such as those mentioned in the previous paragraph. The second class includes run-time recycling events, such as on-demand recycling events, recycling events triggered by configuration changes in the application or applications running in the application pool, or recycling caused by an unhealthy Internet Server Application Programming Interface (ISAPI) filter or ISAPI extension.
The <recycling>
element uses the following attribute and child element to implement these features:
- logEventOnRecycle attribute
- periodicRestart element
Compatibility
Version | Notes |
---|---|
IIS 8.5 | The <recycling> element was not modified in IIS 8.5. |
IIS 8.0 | The <recycling> element was not modified in IIS 8.0. |
IIS 7.5 | The <recycling> element was not modified in IIS 7.5. |
IIS 7.0 | The <recycling> element was introduced in IIS 7.0. |
IIS 6.0 | The <recycling> element replaces portions of the IIS 6.0 IIsApplicationPools metabase property. |
Setup
The <applicationPools>
collection is included in the default installation of IIS 7.
How To
HOW TO SET UP PERIODIC RECYCLING FOR AN APPLICATION POOL
- Open Internet Information Services (IIS) Manager:
- If you are using Windows Server 2012 or Windows Server 2012 R2:
- On the taskbar, click Server Manager, click Tools, and then click Internet Information Services (IIS) Manager.
- If you are using Windows 8 or Windows 8.1:
- Hold down the Windows key, press the letter X, and then click Control Panel.
- Click Administrative Tools, and then double-click Internet Information Services (IIS) Manager.
- If you are using Windows Server 2008 or Windows Server 2008 R2:
- On the taskbar, click Start, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- If you are using Windows Vista or Windows 7:
- On the taskbar, click Start, and then click Control Panel.
- Double-click Administrative Tools, and then double-click Internet Information Services (IIS) Manager.
- If you are using Windows Server 2012 or Windows Server 2012 R2:
- In the Connections pane, expand the server name, and then click Application Pools.
- In the Application Pools pane, select the application pool you want edit.
- In the Actions pane, click Recycling...
- On the Recycling Conditions page of the Edit Application Pool Recycling Settings Wizard, select at least one of the options in the Fixed Intervals section, type values into the appropriate text boxes, and then click Next.
- (Optional) On the Recycling Events to Log page of the Edit Application Pool Recycling Settings Wizard, select the configurable recycling events and run-time recycling events that you want IIS to send to the event log when they occur, and then click Finish.
Note: By default, IIS sends the Regular time intervals, Virtual memory usage, and Private memory usage configurable recycling events to the event log. The other configurable recycling events are available for logging only if you have enabled the logging event on the Recycling Conditions page.
Configuration
The <recycling>
element is configurable at the server level in the ApplicationHost.config file.
ATTRIBUTES
Attribute | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
disallowOverlappingRotation |
Optional Boolean attribute.
Specifies whether the WWW Service should start another worker process to replace the existing worker process while that process is shutting down. The value of this property should be set to true if the worker process loads any application code that does not support multiple worker processes. The default value is |
||||||||||||||||||
disallowRotationOnConfigChange |
Optional Boolean attribute.
Specifies whether the WWW Service should rotate worker processes in an application pool when the configuration has changed. The default value is |
||||||||||||||||||
logEventOnRecycle |
Optional flags attribute.
Specifies that IIS should log an event when an application pool is recycled. ThelogEventOnRecycle property must have a bit set corresponding to the reason for the recycle if IIS is to log the event. The logEventOnRecycle attribute can have one or more of the following possible values. If you specify more than one value, separate them with a comma (,). The default values are
|
CHILD ELEMENTS
Element | Description |
---|---|
periodicRestart |
Optional element.
Specifies conditions under which application pools are recycled. |
CONFIGURATION SAMPLE
The following configuration sample uses the application pool <add>
element to create a new application pool named Contoso. The <recycling>
element configures logging for application pool restarts, the <periodicRestart>
element configures when the application pool restarts, and the <processModel>
element configures the shutdownTimeLimit and startupTimeLimitattributes for shutting down and starting the worker processes in the application pool for 30 seconds each. If these time limits are exceeded, IIS terminates the worker process.
- <add name="Contoso">
- <recycling logEventOnRecycle="Schedule">
- <periodicRestart>
- <schedule>
- <clear />
- <add value="03:00:00" />
- </schedule>
- </periodicRestart>
- </recycling>
- <processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
- </add>
Sample Code
The following code examples add an application pool named Contoso to your IIS 7 server, then set the application pool to daily recycle at 3:00 A.M.
APPCMD.EXE
- appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso']" /commit:apphost
- appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
You can also use the following syntax:
- appcmd.exe add apppool /name:"Contoso"
- appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
Note: You must be sure to set the commit parameter to apphost
when you use AppCmd.exe to configure these settings. This commits the configuration settings to the appropriate location section in the ApplicationHost.config file.
C#
- using System;
- using System.Text;
- using Microsoft.Web.Administration;
- internal static class Sample
- {
- private static void Main()
- {
- using (ServerManager serverManager = new ServerManager())
- {
- Configuration config = serverManager.GetApplicationHostConfiguration();
- ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
- ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
- ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
- addElement["name"] = @"Contoso";
- ConfigurationElement recyclingElement = addElement.GetChildElement("recycling");
- ConfigurationElement periodicRestartElement = recyclingElement.GetChildElement("periodicRestart");
- ConfigurationElementCollection scheduleCollection = periodicRestartElement.GetCollection("schedule");
- ConfigurationElement addElement1 = scheduleCollection.CreateElement("add");
- addElement1["value"] = TimeSpan.Parse("03:00:00");
- scheduleCollection.Add(addElement1);
- applicationPoolsCollection.Add(addElement);
- serverManager.CommitChanges();
- }
- }
- }
VB.NET
- Imports System
- Imports System.Text
- Imports Microsoft.Web.Administration
- Module Sample
- Sub Main()
- Dim serverManager As ServerManager = New ServerManager
- Dim config As Configuration = serverManager.GetApplicationHostConfiguration
- Dim applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
- Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
- Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
- addElement("name") = "Contoso"
- Dim recyclingElement As ConfigurationElement = addElement.GetChildElement("recycling")
- Dim periodicRestartElement As ConfigurationElement = recyclingElement.GetChildElement("periodicRestart")
- Dim scheduleCollection As ConfigurationElementCollection = periodicRestartElement.GetCollection("schedule")
- Dim addElement1 As ConfigurationElement = scheduleCollection.CreateElement("add")
- addElement1("value") = TimeSpan.Parse("03:00:00")
- scheduleCollection.Add(addElement1)
- applicationPoolsCollection.Add(addElement)
- serverManager.CommitChanges()
- End Sub
- End Module
JAVASCRIPT
- var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
- adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
- var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
- var applicationPoolsCollection = applicationPoolsSection.Collection;
- var addElement = applicationPoolsCollection.CreateNewElement("add");
- addElement.Properties.Item("name").Value = "Contoso";
- var recyclingElement = addElement.ChildElements.Item("recycling");
- var periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart");
- var scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection;
- var addElement1 = scheduleCollection.CreateNewElement("add");
- addElement1.Properties.Item("value").Value = "03:00:00";
- scheduleCollection.AddElement(addElement1);
- applicationPoolsCollection.AddElement(addElement);
- adminManager.CommitChanges();
VBSCRIPT
- Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
- adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
- Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST")
- Set applicationPoolsCollection = applicationPoolsSection.Collection
- Set addElement = applicationPoolsCollection.CreateNewElement("add")
- addElement.Properties.Item("name").Value = "Contoso"
- Set recyclingElement = addElement.ChildElements.Item("recycling")
- Set periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart")
- Set scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection
- Set addElement1 = scheduleCollection.CreateNewElement("add")
- addElement1.Properties.Item("value").Value = "03:00:00"
- scheduleCollection.AddElement(addElement1)
- applicationPoolsCollection.AddElement(addElement)
- adminManager.CommitChanges()
Recycling Settings for an Application Pool <recycling>的更多相关文章
- 【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
什么是 PaaS?Platform as a Service 平台即服务 (PaaS) 是云中的完整开发和部署环境,你可以使用其中资源交付内容,从基于云的简单应用到启用云的复杂企业应用程序皆可.你以即 ...
- Application Pool Identities
Whether you are running your site on your own server or in the cloud, security must be at the top of ...
- IIS application pool access desktop denied
https://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permiss ...
- 如何在Windows 2003+IIS6的环境下找回应用程序池(application pool)中的服务账号密码
上一篇文章说了说如何在Win2008+iis7中取出SharePoint管理账号密码的方法. 整个过程简单的讲,就是通过使用要找回密码的账号用来在SharePoint中创建一个临时的Web Appli ...
- IIS7 Application Pool Integrate Mode 和 Classic Mode 的区别
IIS7也用了好久了,关于Application Pool Integrate Mode 和 Classic Mode 究竟是什么也是懵懵懂懂,于是下决心去官网看了技术文档,终于恍然大悟,特来分享一下 ...
- How do I create an IIS application and application pool using InnoSetup script
Create an IIS application. Create a new IIS application pool and set it's .NET version to 4. Set the ...
- 排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
如果Windows的任务管理器中发现某个w3wp.exe占用了100%CPU,那我们就要揪出这是那个网站的application pool在作怪, 首先,每个站点一定要单独使用各自的applicati ...
- 批量启动application pool
在powershell中执行 Get-ChildItem IIS:\AppPools | where {$_.state -eq "Stopped"} | Start-WebApp ...
- SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问
错误出现的前提:多个用户在一台机器上做开发,使用非系统管理员账号时会出现,因为一般创建网站集时指定管理员为系统管理员: 使用 Visual Studio 2010 部署时报错:Error occurr ...
随机推荐
- 小Z爱划水(NOIP信(sang)心(bin)赛)From FallDream
题目: 小Z在机房.他和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同 ...
- 详解利用ShoeBox制作位图字体
http://childhood.logdown.com/posts/190580/-details-using-shoebox-produce-bitmap-fonts?utm_source=tui ...
- sklearn的常用函数以及参数
sklearn可实现的函数或者功能可分为如下几个方面 1.分类算法2.回归算法3.聚类算法4.降维算法5.模型优化6.文本预处理 其中分类算法和回归算法又叫监督学习,聚类算法和降维算法又叫非监督学习 ...
- hdu 1116(并查集+欧拉路径)
Play on Words Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- 项目管理软件Readmine安装配置
1.安装依赖 #yum install curl-devel sqlite-devel libyaml-devel -y 2.安装rvm #curl -L https://get.rvm.io | b ...
- PL/SQL&存储过程||存储函数&触发器
plsql 有点:交互式 非过程化 数据操纵能力强 自动导航语句简单 调试简单 想率高 声明类型的方式 1.基本类型 2.引用变量 3.记录型变量 基本格式 declare 声明 b ...
- SpringCloud集群(三)
一.构造步骤 1.进行其他的服务中心的域名映射 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.com 2 ...
- [Git]Git 常用的操作命令
创建本地仓库 git init 获取远程仓库 git clone [url] 例如:git clone https://github.com/you/yourpro.git 创建远程仓库 添加一个新的 ...
- HNOI2016 游记
题外 忽然想起去年的HNOI2015总结里好像引了一句诗: 此情可待成追忆,只是当时已惘然. Day0 唔,感觉不知道想些什么,只是觉得其实还没有做好准备,想学的东西学的仓促,想复习的东西,也只能看一 ...
- intellij idea 分屏设置 与快捷键
1.找到分屏功能 File -> setting -> keymap,搜索(注意大小写): Split Vertically 水平分屏 Split Horizontally 垂直分 ...