Local IIS运行ASP.NET应用遇Web Config错误:无法添加Path为'*'的重复add项
解决Local IIS运行ASP.NET应用时的Web Config重复集合项错误
这个错误是因为Web.config(或继承自上级IIS配置)中重复定义了path="*"的集合项(通常是<handlers>或<modules>节点下的<add>元素),以下是具体解决办法:
直接删除重复条目
打开项目的Web.config文件,定位到报错提示的集合节点(比如<system.webServer>下的<handlers>),查找所有path="*"的<add>元素,删掉重复的那一条即可。示例错误代码:
<system.webServer> <handlers> <add path="*" verb="*" name="Handler1" modules="..." /> <add path="*" verb="*" name="Handler2" modules="..." /> <!-- 这条是重复项 --> </handlers> </system.webServer>删掉重复的
<add>后即可恢复正常。先移除再添加(解决配置继承冲突)
如果重复项来自上级IIS配置(比如服务器根目录的Web.config),可以在自己项目的Web.config中先移除继承的项,再重新添加自定义配置:<system.webServer> <handlers> <!-- 先移除继承的path="*"的项 --> <remove path="*" /> <!-- 再添加自己需要的配置 --> <add path="*" verb="*" name="CustomHandler" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" /> </handlers> </system.webServer>若知道继承项的具体名称,用
<remove name="继承项名称" />会更精准,避免误删其他配置。禁用配置继承(谨慎使用)
如果不希望继承上级IIS的配置,可以在Web.config中用<location>节点包裹相关配置,设置inheritInChildApplications="false":<location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <!-- 你的自定义handler配置 --> </handlers> </system.webServer> </location>注意:这个操作会让当前站点完全不继承上级的对应配置,可能导致其他依赖继承的功能失效,仅在确认不需要继承时使用。
用IIS管理器排查
打开IIS管理器,选中你的站点,点击右侧的「处理程序映射」,查看列表中是否有重复的*路径条目,直接删除重复项即可,修改会自动同步到Web.config。
内容的提问来源于stack exchange,提问作者Being Real
相关产品推荐
相关产品推荐

