ASP.NET Core项目迁移到C盘后IIS Express访问API返回404如何排查解决
排查与解决方案
1. 清理IIS Express及VS缓存
IIS Express会为每个站点路径生成独立的绑定缓存,项目迁移路径后旧缓存不会自动更新,会直接导致路由映射失败返回404,按以下步骤清理:
- 关闭所有运行中的IIS Express实例、关闭Visual Studio
- 打开路径
C:\Users\<你的系统用户名>\Documents\IISExpress\config,删除该目录下所有.config后缀的配置文件 - 打开C盘下当前项目的根目录,开启隐藏文件显示,删除根目录下的
.vs文件夹(该文件夹存储VS针对当前项目的本地配置) - 重新打开Visual Studio,启动项目测试
2. 校验站点物理路径绑定
缓存清理后如果仍有问题,手动确认IIS Express的站点绑定是否正确:
- 启动项目后右键点击系统托盘的IIS Express图标,选中当前项目对应的站点,点击「查看所有站点」
- 在弹出的窗口中核对站点的物理路径,确认是否指向当前C盘的项目根路径(
wwwroot的上级目录) - 如果物理路径仍然指向旧的D盘路径,重复上一步的缓存清理操作即可自动重新生成正确绑定
3. 检查C盘项目目录权限
C盘的系统权限规则默认比其他盘严格,权限不足会导致IIS Express无法读取路由配置、静态资源,触发404:
- 右键点击C盘下的项目根目录,选择「属性」-「安全」
- 确认当前登录的Windows用户、
IIS_IUSRS用户组对该目录拥有读取和执行、列出文件夹内容的权限 - 缺少权限的话,添加对应用户/用户组并赋予对应权限,重启项目测试
4. 检查托管配置有效性
路径变更可能导致部分本地配置的相对路径读取失败,按以下步骤排查:
- 打开项目根目录下的
web.config文件,确认aspNetCore节点没有写死旧D盘的路径参数 - 启动项目后在Visual Studio的输出窗口,选择「IIS Express」日志分类,查看是否有模块加载失败、配置读取失败的报错
- 存在ANCM(ASP.NET Core Module)相关报错的话,重新安装对应版本的ASP.NET Core托管捆绑包即可解决
5. 校验路由注册状态
如果以上步骤都无效,确认路由是否成功注册到应用中:
- 检查
Program.cs(.NET 6+)或Startup.cs的路由配置代码,确认是否存在依赖相对路径读取全局路由前缀的逻辑,路径变更后读取失败导致前缀配置丢失 - 临时新增一个无任何路由前缀的测试接口,直接访问测试是否能正常返回,排除全局路由失效的问题
- 开启ASP.NET Core的路由日志,查看请求到达时的路由匹配过程,定位匹配失败的具体原因
内容的提问来源于stack exchange,提问作者Johan G
相关产品推荐
相关产品推荐

