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

.NET 8 Web API部署AKS后Swagger UI无法访问求助

排查Swagger UI 404问题的具体步骤

1. 核对Swagger路由与访问路径的匹配性

检查Program.cs中的Swagger注册代码,确保路由前缀和你访问的/api/registration/swagger完全对应。如果你的API设置了全局路由前缀api/registration,需要同步配置Swagger的路由前缀:

app.UseSwaggerUI(options =>
{
    options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
    options.RoutePrefix = "api/registration/swagger"; // 必须和访问路径的前缀一致
});

如果未设置RoutePrefix,默认前缀是swagger,此时访问路径应改为http://test-dev.abcword.com/swagger/index.html(前提是API没有全局路由前缀)。

2. 确认环境变量在AKS Pod中生效

尽管日志显示Swagger已加载,仍需验证Pod内的环境变量是否符合预期。执行以下命令进入Pod查看环境变量:

kubectl exec -it <你的Pod名称> -- printenv

检查控制Swagger启用的变量(比如ASPNETCORE_ENVIRONMENT或自定义的EnableSwagger)是否为触发Swagger注册的有效值,排除代码判断逻辑未正确触发的可能。

3. 检查AKS Ingress路由规则

如果使用Ingress暴露服务,需确保Ingress规则允许Swagger相关路径的流量转发。示例Ingress配置需包含对应路径:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-dev-ingress
spec:
  rules:
  - host: test-dev.abcword.com
    http:
      paths:
      - path: /api/registration
        pathType: Prefix
        backend:
          service:
            name: your-api-service
            port:
              number: 80

注意pathType: Prefix会匹配该路径下的所有子路径,因此/api/registration/swagger/*会被自动转发。如果存在路由冲突或Ingress控制器配置异常,需调整规则确保路径匹配。

4. 验证API中间件顺序

在Program.cs中,中间件顺序直接影响路由处理逻辑,确保UseSwagger和UseSwaggerUI的位置正确:

app.UseRouting();
app.UseAuthorization();

// 环境变量判断后启用Swagger
if (env.IsDevelopment() || Environment.GetEnvironmentVariable("EnableSwagger") == "true")
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

若Swagger中间件放在UseAuthorization之前或UseEndpoints之后,可能导致路由无法被正确解析。

5. 测试容器内部的Swagger访问

进入Pod内部,直接curl测试Swagger路径,定位问题是在应用内部还是外部路由:

kubectl exec -it <你的Pod名称> -- curl http://localhost:80/api/registration/swagger/index.html

如果此命令返回正常,说明问题出在Ingress或外部网络配置;若同样返回404,则需重新检查应用内部的Swagger配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:12:33