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

.NET Core项目通过网站URL访问Swagger遇Fetch错误求助

解决.NET Core项目通过网站URL访问Swagger的报错问题

以下是针对Fetch error Service Unavailable /swagger/v1/swagger.json报错的具体解决步骤:

1. 配置Swagger服务端点

在Program.cs的Swagger生成器配置中,显式添加网站URL作为服务端点,确保Swagger UI能正确定位到swagger.json文件:

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "你的API名称", Version = "v1" });
    // 替换为你的实际网站URL
    c.AddServer(new OpenApiServer { Url = "https://your-website-domain.com" });
});

同时确保Swagger中间件配置顺序正确:

app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API v1");
});

2. 修正项目绑定地址配置

  • 本地开发时,修改launchSettings.json的applicationUrl,添加你的网站域名或IP:
    "profiles": {
      "YourApi": {
        "commandName": "Project",
        "applicationUrl": "https://your-website-domain.com:5001;http://your-website-domain.com:5000",
        "launchUrl": "swagger"
      }
    }
    
  • 服务器部署时(如IIS),确保站点绑定了正确的域名和端口,且应用池配置正确。

3. 配置CORS跨域规则(按需)

如果是前端从外部域名访问Swagger UI,需添加CORS配置避免跨域限制:

builder.Services.AddCors(options =>
{
    options.AddPolicy("SwaggerCors", policy =>
    {
        // 生产环境建议替换为具体允许的域名
        policy.AllowAnyOrigin()
              .AllowAnyMethod()
              .AllowAnyHeader();
    });
});

// 中间件需放在UseRouting之后,UseSwagger之前
app.UseCors("SwaggerCors");

4. 检查网络与防火墙设置

  • 确认服务器防火墙开放了项目使用的端口(如80、443或自定义端口);
  • 验证域名已正确解析到服务器IP,通过ping your-website-domain.com测试连通性;
  • 直接访问https://your-website-domain.com/swagger/v1/swagger.json,确认能正常返回JSON内容——如果无法访问,需排查路由、应用部署状态或权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:15:35