簡體   English   中英

如何在IIS7中禁用應用程序池空閑超時?

[英]How to disable the application pool idle time-out in IIS7?

如果我將空閑超時設置為0,它會被禁用嗎?

是,將空閑超時值設置為零將禁用空閑超時。

奇怪的是,MS文檔中沒有記錄這一點,但我的證據來自於:

  • IIS設置架構

    如果您查看以下IIS設置架構:

    C:\\Windows\\System32\\inetsrv\\config\\schema\\IIS_schema.xml

    idleTimeout的架構定義

    <sectionSchema name="system.applicationHost/applicationPools">

    看起來像:

     <attribute name="idleTimeout" type="timeSpan" defaultValue="00:20:00" validationType="timeSpanRange" validationParameter="0,2592000,60"/> 

    如果查看validationParameter屬性,我們會看到0到25​​92000秒的范圍( ,60指定設置的粒度,在這種情況下,值必須可以除以60 [1分鍾])。

    如果您看到啟動允許值為0那么通常表示可以禁用該設置。

  • IIS7應用程序池空閑超時設置

    Brad Kingsley是OrcsWeb的創始人兼首席執行官,他是一位相當知名,受人尊敬且值得信賴的微軟托管商和金牌合作伙伴。

  • 然后還有經驗證據表明它“正常”。

很棒的答案! 謝謝Kev!

一個小小的更新:您發布的網址已經移動,現在是: http//bradkingsley.com/iis7-application-pool-idle-time-out-settings/

我想知道是否存在這不是默認值的原因,以及是否可能會對應用程序池保持打開時間過長而產生性能影響。 好吧,當它處於空閑狀態時保持它不會比沒有流量和沒有空閑時間時再循環使用更麻煩。 如果您擔心內存泄漏或其他資源泄漏,則會根據自上次回收/內存消耗以來的請求時間/數量強制進行回收。 這是它的文檔:

http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx

我要將我的服務器設置為空閑時無回收(idleTimeout = 0),並且每24小時回收一次:回收>常規時間間隔= 1440

Import-Module WebAdministration

$pools = Get-ChildItem iis:\apppools

foreach ($pool in $pools)
{ 
$poolname = $pool.Name

Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeout="20"}
Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeoutaction="Suspend"}
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart -Value @{time="0"} 
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart.schedule -Value @{value="02:00:00"} 
Set-ItemProperty IIS:\AppPools\$poolname -name Recycling -value @{logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"} 

Write-Host "Updated $poolname settings" 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM