使用Remove-WebConfigurationProperty移除IIS请求过滤扩展名报错
解决思路
1. 定位重复条目的实际来源
错误提示存在重复的.PNG条目,但不一定在当前站点的web.config中——可能是继承自服务器根配置applicationHost.config。先查看当前站点的完整请求过滤扩展名配置(包含继承内容):
Get-WebConfigurationProperty -PSPath 'IIS:\sites\MySite' -Filter "system.webServer/security/requestFiltering/fileExtensions" -Name "collection"
重点排查是否存在大小写不同的重复条目(比如.png和.PNG),IIS配置对扩展名大小写敏感,但实际请求不区分。
2. 修正PowerShell命令参数
原命令中-Name "."参数错误,针对请求过滤的扩展名集合,需要指定-Name "add"来定位要移除的条目类型。修正后的命令:
Remove-WebConfigurationProperty -PSPath 'IIS:\sites\MySite' -Filter "system.webServer/security/requestFiltering/fileExtensions" -Name "add" -AtElement @{ fileExtension='.PNG' }
3. 处理大小写重复问题
先列出当前站点所有配置的扩展名,明确重复项:
Get-WebConfiguration "system.webServer/security/requestFiltering/fileExtensions/add" -PSPath 'IIS:\sites\MySite' | Select-Object fileExtension, allowed
确认要保留的条目后,针对具体大小写的扩展名执行移除命令。
4. 手动编辑配置文件(应急方案)
如果PowerShell命令仍报错,直接打开站点的web.config文件,找到<fileExtensions>节点,手动删除重复的<add fileExtension=".PNG" .../>条目,保存后重启站点应用池即可。
5. 解锁锁定的上级配置
如果服务器根配置(applicationHost.config)中的.PNG条目被锁定,会导致当前站点无法修改。先解锁该配置节:
Unlock-WebConfiguration -PSPath 'IIS:\' -Filter "system.webServer/security/requestFiltering/fileExtensions"
再执行移除命令。
内容的提问来源于stack exchange,提问作者Aniket Phadte
相关产品推荐
相关产品推荐

