是否可以仅在工作日安排特定时间的应用池回收?
提前致谢!
答案 0 :(得分:5)
如果您无法直接使用IIS配置所需的计划,则可以创建一个调用
的计划任务c:\Windows\system32\inetsrv\appcmd.exe recycle apppool "NameOfTheAppPool"
在所需的时间。
答案 1 :(得分:3)
如果您使用的是IIS 7,PeriodicRestart
是关键。将以下内容添加到ApplicationHost.config
文件中:
<add name="YourApplicationPool">
<recycling logEventOnRecycle="Schedule">
<periodicRestart>
<schedule>
<clear />
<add value="12:00:00" />
</schedule>
</periodicRestart>
</recycling>
<processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
</add>
它会在每天12点回收你的Application Pool
。
如果您使用的是IIS7,则可以在工作日设置Scheduled Task
,运行以下命令:
appcmd.exe recycle apppool "YourApplicationPool"
如果您使用的是IIS6,我会遵循指南here。
答案 2 :(得分:2)
此documentation说明了如何使用应用池回收设置。
<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>
答案 3 :(得分:0)
如果您在Azure中托管,则可以使用包含以下内容的startup.cmd文件(来自here):
REM Prevent unwanted recycling
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00
REM Recycle every day at 4am
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/applicationPools /+applicationPoolDefaults.recycling.periodicRestart.schedule.[value='04:00:00'] /commit:apphost