我们的 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
答案1
我发现这个问题的根本原因是在 IISRESET 命令强制终止服务(从而从内存配置数据库缓存中抹去我的更改)之前,我的更改尚未持久保存到磁盘上的 IIS 配置数据库中。
更多信息来自Microsoft 知识库 286196确认如果在重置之前没有将对 IIS 元数据库的任何更改保存到磁盘,则会发生这种情况。
您可以等待更改保存(我认为是 2 分钟),或者使用以下解决方法:
>net stop iisadmin /y
>net start w3svc
>net start msftpsvc
>net start smtpsvc
>net start <short name for any other services that are listed when you stop IIS>
我还发现,如果我使用“IISRESET /noforce”,在更改配置后第一次重新启动 IIS 会失败,但第二次尝试会成功,并且当服务恢复在线状态时,我的更改会正确保存;连续发出 2 个“IISRESET /noforce”命令似乎可以解决问题,而无需等待更改保存到磁盘。