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

如何将ASP.NET Core API应用部署到Azure及部署后无法正常访问API问题

问题根因

你当前的Configure方法存在多处核心中间件缺失和配置限制,直接导致部署后无法正常处理请求:

  • 未注册路由、端点映射等必备中间件,请求无法匹配到Controller对应的API接口,仅能返回默认JSON响应
  • Swagger相关配置仅在开发环境生效,部署到生产环境后默认无法访问接口调试页面
  • 静态文件、默认页中间件未注册,若项目包含前端资源也无法正常加载
  • CORS配置仅允许本地http://localhost:4200的跨域请求,部署后前端域名不一致时接口请求会被拦截

修复代码

替换你的Configure方法为以下内容,根据实际部署场景调整配置:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 跨域配置需放在请求处理链路最前端
    app.UseCors(options =>
                    // 部署后请将生产环境前端域名添加到允许列表,测试阶段可临时用AllowAnyOrigin()
                    options.WithOrigins("http://localhost:4200", "替换为你的生产环境前端访问地址")
                           .AllowAnyMethod()
                           .AllowAnyHeader());

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    // 若需要生产环境也能访问Swagger,将相关配置移到环境判断外
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "CameraApp v1"));

    // 存在前端静态资源时需启用以下两个配置
    app.UseDefaultFiles();
    app.UseStaticFiles();

    // 注册路由匹配中间件
    app.UseRouting();

    // 若使用身份认证,需在此处添加app.UseAuthentication();
    app.UseAuthorization();

    // 端点映射,绑定API接口路由
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        // SPA/Blazor项目需添加回退配置,例如:endpoints.MapFallbackToFile("index.html");
    });
}

部署后验证项

  • 检查部署环境的ASPNETCORE_ENVIRONMENT变量配置,确认和你预期的运行环境一致
  • 部署完成后访问{部署域名}/swagger,确认接口调试页面可以正常打开,直接在Swagger中测试接口返回是否正常
  • 若为前后端分离部署,确认CORS允许列表中已经添加了生产环境的前端域名,避免跨域拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:18:05