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

部署.NET 6+React应用至IIS后API访问出现404错误

.NET 6+React项目IIS部署后API 404问题解决方法

问题核心

你把IIS物理路径指向了发布包内的wwwroot子目录,这只会让IIS托管前端静态文件,后端的.NET程序集不在这个路径下,导致API请求无法被.NET运行时处理,所以出现404。

解决步骤

  • 调整IIS物理路径
    把网站物理路径改成发布包的根目录inetpub\wwwroot\PublishFiles,而不是子目录wwwroot。这样IIS才能加载后端的.NET程序集,同时UseStaticFiles中间件会自动处理wwwroot里的前端资源,前端页面依然能正常访问。

  • 修正Program.cs中间件顺序与路由配置
    确保中间件顺序和路由配置正确,API请求需要对应的路由映射才能被控制器处理:

    // 先处理静态文件
    app.UseStaticFiles();
    
    // 如果是MVC控制器,添加默认路由
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller}/{action}/{id?}");
    
    // 如果是API控制器(带[ApiController]特性),添加API路由映射
    app.MapControllers();
    
    // 最后处理SPA路由 fallback,确保前端路由正常
    app.MapFallbackToFile("index.html");
    

    你之前的代码缺少API或MVC路由的配置,这是API无法被识别的关键原因之一。

  • 检查应用程序池设置

    • 应用程序池的.NET CLR版本要设为无托管代码,因为ASP.NET Core项目不需要传统的.NET Framework托管环境。
    • 确保应用程序池的身份拥有发布目录的读写权限,避免因权限问题导致程序无法启动。
  • 确认ASP.NET Core模块已安装
    检查IIS的模块列表里是否存在AspNetCoreModuleV2,这个模块负责将IIS请求转发给.NET Core运行时。如果没有,需要重新安装.NET 6宿主包(安装时勾选IIS托管组件)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:50:04