IIS Alaways Running Setting With AppCmd (IIS Folder)


  1. 說明

筆記如何使用 AppCmd 進行 IIS 的站台相關的 Always Running, Auto Start, PreloadEnabled 等設定,讓應用程式或相關程式 (如 Hangfire) 可以如期排程執行。

logo

說明

相關的 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>