在C#/ Powershell中 - 是否可以从应用程序池中更改IIS空闲超时?

Bon*_*arp 15 c# iis powershell

我想禁用应用程序池的空闲超时(将其设置为零),我想在设置时执行此操作,是否可以从C#或PowerShell执行此操作?

R0M*_*RMY 21

如果您使用的是PowerShell 2或更高版本,则应该可以访问Set-ItemProperty.您还需要加载WebAdministration模块.

然后你可以这样做(例子取自这里)

Set-ItemProperty ("IIS:\AppPools\$name") -Name processModel.idleTimeout -value ( [TimeSpan]::FromMinutes(0))
Run Code Online (Sandbox Code Playgroud)

并验证该值是否已更改

Get-ItemProperty ("IIS:\AppPools\$name") -Name processModel.idleTimeout.value
Run Code Online (Sandbox Code Playgroud)


Ton*_* Yu 7

@ R0MANARMY的答案(目前最受欢迎的)对我不起作用.它运行正常,但后续检查显示空闲超时未更改.

根据此博客文章,该答案修改了对象的内存中副本.我在R0MANARMY的答案中修改了示例代码:

Get-ChildItem IIS:\AppPools\$name | ForEach { $_.processModel.IdleTimeout = [TimeSpan]::FromMinutes(0); $_ | Set-Item; }
Run Code Online (Sandbox Code Playgroud)