IIS 使用Power Shell啟動已中止的Pooling

目前的網站,因大量資料的查詢,會不定時的造成Pooling中止,在還沒改善程式的狀況下,現行的處理措施,都是等到使用者通知後,手動將Pooling啟動。這樣的處理,若遇到下班或假日時,就非常的麻煩了....且久了就會讓人感覺不夠專業XD。

解決方案
寫一個PowerShell來啟動已中止的Pooling,並透過排程定時呼叫。

#要先匯入模組Get-ChildItem 才會認得IIS:
Import-Module WebAdministration
#1.取得所有Pooling
$pools=Get-ChildItem IIS:\AppPools
#2.比對要啟動的Pooling
$poolMaps="PrdPooling","Prd-Download-Pooling","Sta-Pooling"

for($i=0;$i -lt $pools.Length;$i++){
##3.比對到要啟動及已停止的Pooling並啟動
if($poolMaps.IndexOf($pools[$i].Name) -gt -1 -and $pools[$i].State -eq "Stopped"){
  Start-WebAppPool $pools[$i].Name
  $pools[$i].Name
}
}

參考來源

這個網誌中的熱門文章

IIS 設定只允許特定IP進入