You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure无法识别Index.cshtml:ASP.NET Core部署至Azure服务求助

解决Azure部署ASP.NET Core后无法识别Index.cshtml的问题

我之前也碰到过一模一样的情况——本地调试顺得不行,一部署到Azure就跳那个默认的"Your App Service app is up and running"页面,给你几个亲测有效的排查和解决方向:

1. 调整Azure App Service的默认文档设置

Azure默认会优先找wwwroot里的静态HTML文件,找不到才会把请求交给ASP.NET Core处理。你可以这么改:

  • 登录Azure门户,找到你的App Service实例
  • 左侧菜单点开「配置」→「默认文档」
  • 把Index.cshtml添加到默认文档列表的最上方(虽然ASP.NET Core MVC主要靠路由,但这个设置能确保Azure优先尝试匹配你的视图)

2. 确认项目的路由与服务配置正确

ASP.NET Core MVC的路由是核心,得确保你的Program.cs(.NET 6+)或者Startup.cs(旧版本)配置没毛病:

  • 必须注册MVC服务:builder.Services.AddControllersWithViews();
  • 中间件部分要启用路由和MVC默认映射:
    app.UseRouting();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
  • 别忘了加上app.UseStaticFiles();,虽然你wwwroot没HTML,但CSS、JS这些静态资源得靠这个中间件加载

3. 验证发布的文件完整性

有时候发布过程中文件漏传也会出问题:

  • 在Visual Studio发布时,检查「部署模式」,选「框架依赖」(如果Azure已经装了对应.NET版本)或者「独立」都可以,确保和项目兼容
  • 去Azure App Service的「高级工具」→「Kudu」,点开「Debug console」→「CMD」,查看site\wwwroot目录下有没有Views文件夹,以及里面的Home/Index.cshtml是否存在。如果缺失,先清理本地项目的bin/obj文件夹,再重新发布一次

4. 查看日志揪出隐藏问题

如果上面都没问题,就去日志里找线索:

  • 在Azure门户的App Service里,点开「监视」→「日志流」,实时查看应用启动和请求的日志,有没有路由匹配失败、视图找不到的错误信息
  • 也可以看「部署中心」的部署日志,确认所有文件都成功上传了

本地调试正常是因为Visual Studio会自动帮你处理ASP.NET Core的启动和路由映射,但Azure环境需要明确配置才能正确识别你的MVC视图,按上面的步骤排查应该就能解决。

内容的提问来源于stack exchange,提问作者deralbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:10:32