发布ASP.NET Core Web API到Azure时Swagger问题排查与解决
.NET Core Web API发布到Azure的Swagger问题排查与解决
问题1:.NET 6 API发布后Swagger报错
将基于.NET 6的ASP.NET Core Web API发布到Azure后,Web应用显示发布成功,但生成Swagger文件时报错,提示需在Startup.cs的ConfigureServices中调用AddSwaggerGen。
- 已在Program.cs中配置
AddSwaggerGen,重新发布后报错依旧 - 临时处理:将API升级到.NET 7后发布成功,但出现新问题
问题2:.NET 7 API发布后Swagger页面404
升级到.NET 7并发布成功后,访问azurewebsites.net站点时Swagger文档显示404错误。
- 排查结论:生产环境未配置
UseSwaggerUI中间件 - 最终解决:调整中间件配置,为生产环境启用SwaggerUI,发布后站点默认显示Swagger文档
正确的.NET 7 Swagger配置示例(Program.cs)
var builder = WebApplication.CreateBuilder(args); // 配置Swagger服务 builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new() { Title = "你的API名称", Version = "v1" }); }); var app = builder.Build(); // 启用Swagger及SwaggerUI(支持生产环境) app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API V1"); // 设置站点根路径直接加载SwaggerUI c.RoutePrefix = string.Empty; }); app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

