IIS Alaways Running Setting With AppCmd (IIS Folder)
2024-01-10
筆記如何使用 AppCmd 進行 IIS 的站台相關的 Always Running, Auto Start, PreloadEnabled 等設定,讓應用程式或相關程式 (如 Hangfire) 可以如期排程執行。
說明
相關的 Always Running, Auto Start, PreloadEnabled 的設定都會儲存到 applicationHost.config
,路徑如下:
%systemroot%\system32\inetsrv\config\
如果要使用 AppCmd.exe
路徑如下:
%systemroot%\system32\inetsrv\
REM 集區的進階設定 啟動模式(Start Mode) 設定為 AlwaysRunning
appcmd.exe set apppool /apppool.name:apppoolName /startMode:AlwaysRunning
appcmd.exe set apppool /apppool.name:apppoolName /autoStart:true
REM 集區的進階設定 閒置逾時(idle Timeout) 設定為 0
appcmd.exe set apppool /apppool.name:apppoolName /processModel.idleTimeout:00:00:00
REM 集區的進階設定 閒置逾時動作(idleTimeoutAction) 設定為 Suspend
appcmd.exe set apppool /apppool.name:apppoolName /processModel.idleTimeoutAction:Suspend
REM 站台的進階設定 預先載入(preloadEnabled) 設定為 true
appcmd.exe set app "Default Web Site/apppoolName" /preloadEnabled:true
applicationHost.config
<system.applicationHost>
<applicationPools>
<add name="apppoolName" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated"
startMode="AlwaysRunning">
<processModel identityType="ApplicationPoolIdentity" idleTimeout="00:00:00" idleTimeoutAction="Suspend" />
</add>
</applicationPools>
<sites>
<site name="Default Web Site" id="1" serverAutoStart="true">
<application path="/apppoolName" applicationPool="apppoolName" preloadEnabled="true">
<virtualDirectory path="/" physicalPath="D:\WebSites\apppoolName"/>
</application>
</site>
</sites>
</system.applicationHost>