我需要的
是使用PowerShell自动将黄色标记的值设置为false:
那是在应用程序池上右键单击“高级设置”时。
我需要它来进行 Octopus 部署后脚本。
我不需要什么
我不需要Regular Time Interval (minutes)
,因为它已经涵盖了:
$AppPool.recycling.periodicRestart.time = ( [TimeSpan]::FromMinutes($desiredValue))
我知道的
与许多其他值不同,Regular Time Interval
不在applicationHost.config
文件中。我确信是因为:
- 我在主机文件中找不到任何类似文本的内容。
- 通过 IIS 设置值不会更新文件
所以我不能使用主机配置来查找结构(就像我对其他值所做的那样)。
有什么线索吗?
答案1
Recycling.LogEventOnRecycle
可以从返回的应用程序池对象的属性中读取该信息Get-IISAppPool
,但奇怪的是,对此的更改似乎不会持久。
为了使更改生效,我们需要不同的方法。首先,我们将导入 IIS 管理模块,这将创建一个包含 IIS 对象的伪驱动器。
Import-Module WebAdministration
然后我们转到有问题的应用程序池。
cd "IIS:\AppPools\$name"
(假设$name
是您的应用程序池的名称。)现在我们得到有关回收的配置部分。
$cfg = Get-ItemProperty . 'recycling'
此值是导致生成事件的事件的逗号分隔列表。我们删除了与Time
您突出显示的 GUI 元素相对应的事件。
$cfg.logEventOnRecycle = ($cfg.logEventOnRecycle -split ',' | ? {$_ -ne 'Time'}) -join ','
最后我们提交改变的配置部分。
Set-ItemProperty . 'recycling' $cfg
查阅 IIS 管理 GUI 表明这确实保存了我们的选择。
请注意,为了避免其他读者产生混淆,关闭此特定选项并不会禁用定期回收。相反,它会删除回收时生成的日志条目。要禁用定期重启,请将常规时间间隔设置为零。