Я пытаюсь настроить пулы приложений для повторного использования несколько раз в день в iis 8.5, я пытался использовать команду powershell и app, и при тестировании на сервере, на котором нет сайтов/приложений в пуле, кажется, работает отлично, однако при попытке установить любой метод на сервере с сайтами в пулах приложений я наблюдаю странное поведение. Кажется, он работает, однако в графическом интерфейсе 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
Опять же, это работает отлично, если в пуле приложений нет сайтов. Когда сайты существуют, это работает, за исключением того, что графический интерфейс показывает только одно из установленных значений времени:
однако запрос значения показывает оба раза:
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, но обнаружил те же результаты, отлично работает на сервере без сайтов в пуле приложений, но при запуске на серверах с сайтами отсутствует одно время в графическом интерфейсе, запросы показывают оба раза. Я включил вход в систему для повторного использования пула приложений, чтобы подтвердить, что это происходит в оба раза, но мне интересно, не упускаю ли я из виду что-то очевидное.
скрипт 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
-Value $restartTime
вместо-Value @{value=$restartTime}
, так как последний выдал мне ошибку (неверное приведение). Боюсь, я не могу воспроизвести ваше поведение, но опять же я тестировал только на своей рабочей станции (Windows 10), так что это может быть частью проблема... - person Sage Pourpre   schedule 23.01.2020