Server 2022 IIS 10启用Shared Configuration时管理器挂起
IIS 10 跨版本启用共享配置时管理器挂死故障排查
故障基础信息
- 故障环境:Windows Server 2022 运行 IIS 10,启用共享配置(Shared Configuration)功能
- 触发条件:指定从Windows Server 2019 + IIS 10环境导出的配置文件夹路径、输入加密密钥后,IIS管理器立即无响应挂死
- 异常特征:事件查看器无任何相关错误记录,只能强制终止IIS管理器进程
- 已完成的前置验证:
- 指向Windows Server 2022本地导出的配置时,共享配置功能可正常运行
- 两台服务器安装的IIS功能模块完全一致
- 两台服务器部署的SSL证书完全匹配
- 两台服务器均可正常访问相同的wwwroot站点内容目录
可能原因及对应修复方案
1. 跨系统版本的IIS配置架构不兼容
虽然Server 2019和Server 2022搭载的IIS大版本均为10,但两个系统内置的IIS配置Schema(架构定义)存在细微差异,Server 2022新增了部分默认配置节点、更新了部分属性的枚举值定义。直接加载Server 2019导出的配置时,IIS管理器的配置解析组件会持续等待缺失的架构定义,触发进程死锁,且该解析阶段的异常不会写入IIS事件日志通道。
修复操作:
- 在Server 2022上执行一次本地共享配置导出,将导出目录下的
ConfigSchema文件夹整体复制,覆盖Server 2019导出配置目录下的同名文件夹 - 覆盖完成后重新在IIS管理器中指定共享配置路径、输入加密密钥即可正常加载
2. 配置文件残留源服务器专属加密容器配置
即使导出时输入了正确的加密密钥,若Server 2019导出配置时未完整导出加密密钥相关配置,会将源服务器本地机器专属的RSA密钥容器标识写入applicationHost.config和administration.config的<configProtectedData>节点。Server 2022加载配置时会持续尝试访问本地不存在的密钥容器,触发进程无限等待挂起。
修复操作:
- 回到Server 2019源服务器重新执行共享配置导出,导出时确认勾选导出加密密钥选项,设置一致的加密访问密码后重新生成配置包
- 若重新导出后问题仍存在,可临时关闭Server 2022的共享配置,用文本编辑器打开Server 2019导出的两个核心配置文件,定位到
<configProtectedData>节点,删除节点内所有带源服务器机器SID标识的自定义RSA提供程序配置,替换为Server 2022本地导出配置中同节点的默认内容,保存后重新启用共享配置
3. 共享配置目录权限配置隐性缺失
可正常访问wwwroot目录不代表共享配置目录权限配置正确:IIS加载共享配置时需要IIS_ADMIN组、WMSVC服务账号、IIS管理器运行账号共同具备配置目录的读取权限,若使用SMB网络共享存储配置,还需要给服务器计算机账户授予访问权限。权限不足时IIS管理器不会直接抛出权限错误,会卡在权限等待逻辑中挂死。
修复操作:
- 打开存放共享配置的文件夹属性,进入安全选项卡,添加
IIS_ADMIN、LOCAL SERVICE、NETWORK SERVICE三个本地安全主体,授予「读取&执行」「列出文件夹内容」「读取」三个权限 - 若配置存放在SMB共享路径,需要同时给Server 2022对应的计算机账户(格式为
域/主机名$)授予共享级和NTFS级的读取权限,不要仅给个人用户账号授权
注意:所有配置操作前,请先在两台服务器的IIS管理器中执行「备份服务器配置」操作,生成独立配置备份包,操作异常时可快速回滚。
内容的提问来源于stack exchange,提问作者Todd
相关产品推荐
相关产品推荐

