IIS配置后运行项目报0x80070021 HTTP 500.19错误的原因与方案咨询
错误0x80070021(HTTP 500.19)成因与解决方案
相关报错凭证
- 站点报错截图:

- 追踪日志截图:

具体错误提示:执行此操作时出错,此配置节无法在此路径使用,这是因为该节在父级别被锁定,锁定可能是默认设置(overrideModeDefault=”Deny”),或是通过overrideMode=”Deny”的location标记、旧版allowOverride=”false”显式设置的。
问题成因
- 核心原因是IIS父级配置锁定了当前站点需要调用的配置节,IIS默认对部分敏感配置节的
overrideModeDefault属性设为Deny,禁止子站点的web.config文件自行修改这类配置 - 常见触发场景:站点web.config中定义了需要依赖IIS额外功能的配置(比如ASP.NET运行模块、URL重写规则、自定义HTTP处理规则等),但对应IIS功能未安装,或是父级配置未对该配置节开放修改权限
解决方案
方法1:安装缺失的IIS功能(优先级最高)
90%以上的该类报错由缺失IIS组件导致,操作步骤:
- 打开「控制面板」→「程序和功能」→「启用或关闭Windows功能」
- 依次展开「Internet Information Services」→「万维网服务」→「应用程序开发功能」
- 勾选和项目匹配的.NET框架版本(比如ASP.NET 4.8、.NET 6/7/8托管 bundle等),如果项目用到URL重写规则需要额外安装URL重写模块
- 等待安装完成后执行
iisreset重启IIS,再次访问站点测试
方法2:解锁对应被锁定的配置节
如果确认所有依赖功能已安装,直接解锁被锁定的配置节即可:
- 打开IIS管理器,点击左侧根节点(本地服务器名称),双击中间区域的「配置编辑器」
- 顶部的「节」下拉框,选中错误提示中提到的被锁定配置节(常见为
system.webServer/handlers、system.webServer/modules、system.webServer/security等,可从错误详情里定位具体节名) - 点击右侧操作栏的「解锁」选项,保存配置
- 重启对应站点后测试
方法3:直接修改IIS全局配置(进阶方案)
如果无法通过IIS管理器操作,可直接修改根配置文件:
- 打开路径
C:\Windows\System32\inetsrv\config\applicationHost.config - 搜索对应被锁定的配置节,将属性
overrideModeDefault="Deny"修改为overrideModeDefault="Allow" - 保存文件后执行
iisreset命令重启IIS即可
注意:该方案会修改全局配置,仅推荐测试环境使用,生产环境优先使用方法2做单独配置节解锁
内容的提问来源于stack exchange,提问作者cui
相关产品推荐
相关产品推荐

