构建C# Web项目时出现System.Web.Cors Minor Version Mismatch报错
可行排查方向
- 检查全局程序集缓存(GAC)的冲突
GAC加载优先级高于项目bin目录,若本机GAC中安装了其他版本的System.Web.Cors会优先加载,导致版本不匹配。操作步骤:- 以管理员权限打开Visual Studio开发者命令提示符
- 执行命令
gacutil /l System.Web.Cors查看是否存在已注册的System.Web.Cors程序集 - 若存在对应程序集,执行
gacutil /u "System.Web.Cors, Version=对应版本号, Culture=neutral, PublicKeyToken=31bf3856ad364e35卸载冲突版本
- 清空ASP.NET临时缓存
日志显示程序加载时会优先读取临时缓存目录的文件,重新克隆代码不会清空该目录的历史缓存会导致版本读取错误:- 关闭所有运行中的Visual Studio和IISExpress进程
- 进入路径
C:\Users\你的用户名\AppData\Local\Temp\Temporary ASP.NET Files,删除该目录下所有文件
- 检查全局配置文件的绑定重定向覆盖
全局配置优先级高于项目web.config,日志中提到的两个全局配置如果存在System.Web.Cors的绑定规则会覆盖项目配置:- 打开以下两个配置文件:
C:\Users\你的用户名\Documents\IISExpress\config\aspnet.configC:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config
- 搜索是否存在System.Web.Cors相关的bindingRedirect配置,若存在则删除
- 打开以下两个配置文件:
- 清理全局NuGet缓存
本地NuGet缓存的包损坏或版本错误会导致项目还原时拉取到错误版本的程序集:- 执行命令
nuget locals all -clear,或在Visual Studio的「选项-NuGet包管理器界面点击「清除所有NuGet缓存」 - 重新还原项目的NuGet包后重新编译
- 执行命令
- 验证本机IISExpress站点配置
检查当前项目对应的IISExpress站点配置是否指向了错误的应用程序根目录或配置文件路径,导致项目web.config未被正确加载,对应日志中No application configuration file found的提示。
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

