ASP.NET Core 6部署IIS后路由跳转出现HTTP 404.0错误求助
ASP.NET Core 6 MVC IIS部署路由404问题排查方案
1. 确认ASP.NET Core宿主组件安装状态
- 检查IIS是否安装ASP.NET Core Hosting Bundle(对应.NET 6版本),这是IIS托管ASP.NET Core应用的必需组件。未安装则下载对应版本安装,完成后重启IIS。
- 验证模块:打开IIS管理器 → 服务器节点 → 功能视图 → 查看“模块”,确认存在
AspNetCoreModuleV2。
2. 检查应用程序池核心配置
- 确保应用程序池的**.NET CLR版本**设置为
无托管代码,ASP.NET Core应用为自托管模式,无需依赖IIS的托管CLR。 - 验证应用程序池标识权限:确保所选标识(如ApplicationPoolIdentity)对网站根目录拥有读取权限。
3. 检查网站Handler Mappings设置
- 打开IIS管理器 → 目标网站 → 功能视图 → “Handler Mappings”,确认存在
AspNetCore映射:请求路径为*,模块为AspNetCoreModuleV2。 - 若缺失该映射,手动添加:点击“添加模块映射”,请求路径填
*,模块选AspNetCoreModuleV2,名称设为AspNetCore,确认保存。
4. 验证项目发布与启动配置
- 确认项目发布时选择**“Framework-dependent”**部署模式(独立部署需确保对应运行时环境匹配),且发布目录指向IIS网站根目录。
- 检查
launchSettings.json中的IIS配置,确保applicationUrl路径正确,示例配置:"iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iis": { "applicationUrl": "http://你的站点域名或IP", "sslPort": 0 } }
5. 确认项目路由注册正确性
- 检查
Program.cs中的路由注册代码,确保MVC路由规则正确配置:var builder = WebApplication.CreateBuilder(args); // 注册MVC服务 builder.Services.AddControllersWithViews(); var app = builder.Build(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); app.Run(); - 确认“Borsa”按钮对应的控制器、Action存在,且视图文件位于正确目录(
Views/Borsa/Index.cshtml)。
6. 启用IIS日志定位问题
- 开启网站日志记录,查看404请求的完整路径,确认请求URL是否与项目路由规则匹配。日志默认路径为
C:\inetpub\logs\LogFiles\W3SVC{站点ID}。
7. 重启服务生效配置
- 完成上述配置后,先重启对应应用程序池,再执行命令
iisreset重启IIS服务,确保所有配置生效。
内容的提问来源于stack exchange,提问作者Joseph francisco Cubas Ballon
相关产品推荐
相关产品推荐

