如何解决IIS中Request filtering功能异常问题(仅.NET8 Core应用受影响)
IIS中.NET 8 Core应用Request Filtering弹窗无描述错误的排查方案
重置IIS管理控制台缓存
IIS控制台的缓存文件损坏常引发这类无描述异常,按以下步骤操作:- 关掉所有IIS管理器窗口
- 删除
C:\Windows\System32\inetsrv\config目录下的administration.config.bak和redirection.config.bak文件(如果存在) - 以管理员身份打开命令提示符,执行
iisreset重启IIS服务 - 重新打开IIS管理器,再点击Request Filtering试试
修复.NET 8 Hosting Bundle
.NET Core应用依赖的Hosting Bundle文件损坏会导致IIS模块交互异常:- 在控制面板的“程序和功能”里卸载当前的.NET 8 Hosting Bundle
- 下载最新版.NET 8 Hosting Bundle重新安装
- 安装完成后执行
iisreset,再测试功能
校验web.config的Request Filtering配置格式
就算配置存在,也可能有隐性语法错误,比如谓词定义不规范,参考正确配置示例:<system.webServer> <security> <requestFiltering> <verbs allowUnlisted="false"> <add verb="GET" allowed="true" /> <add verb="POST" allowed="true" /> <!-- 自定义添加的谓词 --> <add verb="PUT" allowed="true" /> </verbs> </requestFiltering> </security> </system.webServer>检查配置有没有多余标签或语法问题,保存后回收应用池再测试
确认应用池的.NET CLR版本设置
.NET Core应用的应用池必须设为No Managed Code,误改会引发模块冲突:- 在IIS管理器里找到目标应用池
- 右键选“高级设置”
- 确认“.NET CLR版本”是
No Managed Code - 重启应用池后再测试
内容的提问来源于stack exchange,提问作者Joy Mathew
相关产品推荐
相关产品推荐

