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

.NET 6 Angular项目自定义控制器HTTPS请求返回404问题

解决.NET 6集成Angular项目中自定义控制器HTTPS请求404的问题

以下是针对问题的排查和解决步骤:

1. 补充API属性路由的映射配置

你的Program.cs中使用了AddControllersWithViews()和MapControllerRoute,但带有[ApiController]和[Route]属性的控制器需要明确调用MapControllers()才能确保属性路由被正确识别。修改Program.cs:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        // 保留AddControllersWithViews以支持MVC视图,同时添加AddControllers支持API控制器
        builder.Services
            .AddControllersWithViews()
            .AddControllers();

        var app = builder.Build();

        if (!app.Environment.IsDevelopment())
        {
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();

        app.MapControllerRoute(
            name: "default",
            pattern: "{controller}/{action=Index}/{id?}"
        );

        // 新增该行,确保属性路由的API控制器被正确映射
        app.MapControllers();

        app.MapFallbackToFile("index.html");

        app.Run();
    }
}

2. 检查launchSettings.json的HTTPS配置

打开项目根目录下的Properties/launchSettings.json,确认HTTPS的applicationUrl配置正确,示例配置:

"profiles": {
  "TestWebsite": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "applicationUrl": "https://localhost:5001;http://localhost:5000",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

确保访问自定义控制器时使用的HTTPS端口和配置一致,比如https://localhost:5001/Other。

3. 清除浏览器HSTS缓存

由于项目启用了HSTS,浏览器可能缓存了错误的路由跳转规则,导致HTTPS请求被强制导向Angular的index.html。以Chrome为例:

  • 地址栏输入chrome://net-internals/#hsts
  • 在「Delete domain security policies」区域输入localhost,点击删除

4. 重置开发HTTPS证书

如果自签名HTTPS证书存在异常,可能导致请求路由异常:

  • 打开命令行,进入项目根目录
  • 执行命令清理旧证书:dotnet dev-certs https --clean
  • 重新生成并信任证书:dotnet dev-certs https --trust

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:35:28