Я пытаюсь настроить пулы приложений на повторную загрузку несколько раз в день в iis 8.5, я пытался использовать powershell и команду приложения, и при тестировании на сервере, на котором нет сайтов / приложений в пуле, похоже, что он работает отлично, однако, при попытке установить любой из методов на сервере, на котором есть сайты в пулах приложений, я вижу странное поведение, однако, похоже, что он работает в GUI IIS, если я смотрю на параметры утилизации пула приложений он показывает только один из указанных времен. Сценарий Powershell, который первоначально пытался использовать, выглядит так:
function Set-ApplicationPoolRecycleTimes {
param (
[string]$ApplicationPoolName,
[string[]]$RestartTimes
)
Import-Module WebAdministration
Write-Output "Updating recycle times for $ApplicationPoolName"
# Delete all existing recycle times
Clear-ItemProperty IIS:\AppPools\$ApplicationPoolName -Name Recycling.periodicRestart.schedule
Clear-ItemProperty IIS:\AppPools\$ApplicationPoolName -Name Recycling.periodicRestart.time
foreach ($restartTime in $RestartTimes) {
Write-Output "Adding recycle at $restartTime"
# Set the application pool to restart at the time we want
New-ItemProperty -Path "IIS:\AppPools\$ApplicationPoolName" -Name Recycling.periodicRestart.schedule -Value @{value=$restartTime}
Set-ItemProperty -Path "IIS:\AppPools\$ApplicationPoolName" -Name Recycling.periodicRestart.time -Value "00:00:00"
} # End foreach restarttime
} # End function Set-ApplicationPoolRecycleTimes
$apppoolname1 = "app pool's name"
$restartat = @("1:45", "18:45")
Set-ApplicationPoolRecycleTimes -ApplicationPoolName $apppoolname1 -RestartTimes $restartat
Опять же, похоже, это работает отлично, если в пуле приложений нет сайтов. Когда сайты существуют, кажется, что они работают, за исключением того, что gui показывает только один из установленных времен:
, однако запрашивает значение, показывающее оба раза:
Import-Module WebAdministration
(Get-ItemProperty ('IIS:\AppPools\app pool name') -Name Recycling.periodicRestart.schedule.collection) | select value
value
-----
18:45:00
01:45:00
также пытался использовать appcmd, но нашел те же результаты, отлично работает на сервере без сайтов в пуле приложений, но при работе с серверами с сайтами, пропускающими один из случаев в gui, запрос показывает оба раза. Я включил вход для повторов пулов приложений, чтобы подтвердить, что это происходит в обоих случаях, но мне интересно, не вижу ли я просто что-то очевидное.
Сценарий appcmd:
CD C:\windows\System32\inetsrv
$V1 = "app pool name"
#clears any existing schedule
cmd.exe /c appcmd.exe set apppool /apppool.name: $V1 /-recycling.periodicRestart.schedule
#setting desired recycles
cmd.exe /c appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='$v1'].recycling.periodicRestart.schedule.[value='01:45:00']" /commit:apphost
cmd.exe /c appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='$v1'].recycling.periodicRestart.schedule.[value='18:45:00']" /commit:apphost