我们的 IIS 服务器最近使用最新的 Microsoft 安全更新进行了修补,从那时起,我无法启用“在 IIS 5.0 隔离模式下运行 WWW 服务”设置。此设置在修补之前启用,并在更新期间以某种方式更改。我已经尝试使用 IIS 管理器控制台和 adsutil.vbs 方法来更改它。无论哪种方式,在重置 IIS 以使更改生效后,当我去验证隔离模式设置是否已启用 (true) 时,我发现它恢复为禁用状态 (false)。
现在......补丁已经回滚,但是当我启用它时设置仍然没有保留。当我试图研究应用的补丁以查看是否存在已知问题(或者此设置的行为可能发生变化)时,我希望其他人可能遇到过同样的问题。对解决方法的任何帮助将不胜感激!
>cscript adsutil.vbs set W3SVC/IIs5IsolationModeEnabled TRUE
IIs5IsolationModeEnabled : (BOOLEAN) True
>iisreset
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted
>cscript adsutil.vbs get W3SVC/IIs5IsolationModeEnabled
IIs5IsolationModeEnabled : (BOOLEAN) False
我发现这个问题的根本原因是在 IISRESET 命令强制终止服务之前,我的更改没有保存到磁盘上的 IIS 元数据库(从而从内存中的元数据库缓存中清除了我的更改)。
来自Microsoft KB 286196的更多信息证实,如果 IIS 元数据库的任何更改在重置发生之前未保存到磁盘,则会发生此行为。
您可以等待更改被保存(我认为 2 分钟),或使用以下解决方法:
我还发现,如果我使用“IISRESET /noforce”,它会在我的配置更改后第一次重新启动 IIS 失败,但在第二次尝试时会成功,并且当服务重新联机时我的更改会正确保留;连续发出 2 个“IISRESET /noforce”命令似乎无需等待更改保存到磁盘就可以解决问题。