2012-02-28 37 views

回答

4

如果您不能直接配置使用IIS所需的時間表,你可以創建計劃任務調用

c:\Windows\system32\inetsrv\appcmd.exe recycle apppool "NameOfTheAppPool" 

按要求的時間。

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> 
+1

但它不能使回收的應用程序池只在工作日。這也不能在IIS7中以編程方式實現。 http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add所以接受的答案是唯一的出路。 – 2012-02-28 16:06:23

3

如果您使用的是IIS 7,則​​3210是關鍵。添加以下到您的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> 

將每天回收您Application Pool在12點鐘。

如果你正在使用IIS7,你可以設置一個Scheduled Task,對於工作日內,運行以下命令:

appcmd.exe recycle apppool "YourApplicationPool"

如果使用的是IIS6,我遵循的指導here

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 
相關問題