发布ASP.NET Core 6.0 Web API后无法访问Swagger页面
ASP.NET Core 6.0发布后Swagger 404问题解决
问题根源:Swagger默认仅在
Development开发环境中启用,发布为Release环境时,相关中间件未被注册,导致访问Swagger页面返回404。解决方案步骤:
- 修改
Startup.cs中的Swagger配置逻辑,移除环境限制或调整判断条件,确保Release环境能加载Swagger。示例代码如下:public void ConfigureServices(IServiceCollection services) { // 注册Swagger服务,取消环境限制 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "MyWebApp", Version = "v1" }); }); services.AddControllers(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 启用Swagger中间件(可根据需求添加环境判断,比如只在测试/开发环境开启) app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyWebApp v1"); // 若需通过根路径直接访问Swagger,添加此行 // c.RoutePrefix = string.Empty; }); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } - (可选)临时指定运行环境为Development:
- Windows命令行:
set ASPNETCORE_ENVIRONMENT=Development && dotnet MyWebApp.dll - Linux/macOS:
export ASPNETCORE_ENVIRONMENT=Development && dotnet MyWebApp.dll
- Windows命令行:
- 验证路径:发布后先尝试访问
http://localhost:10001/swagger/v1/swagger.json,确认能获取到JSON文件,若路径错误,调整SwaggerUI的SwaggerEndpoint配置。
- 修改
注意事项:生产环境不建议长期开启Swagger,仅在测试发布后的API时临时启用即可。
内容的提问来源于stack exchange,提问作者Gagiu Filip
相关产品推荐
相关产品推荐

