如何将.NET 7中的ASP.NET Core Web API发布到Azure,如果它需要Startup.cs文件?

tmb3ates  于 5个月前  发布在  .NET
关注(0)|答案(1)|浏览(73)

我正在尝试将我的ASP.NET Core 7 Web API发布到Azure,但每当我尝试这样做时,我都会收到此错误消息:
发布遇到错误。
确保应用程序的Startup.cs从ConfigureServices中调用AddSwaggerGen以生成swagger文件。有关详细信息,请访问https://go.microsoft.com/fwlink/?LinkId=2131205&CLCID=0x409
诊断日志已写入以下位置:“C:\Users\cvale\AppData\Local\Temp\tmp4709.tmp”
.NET 7(和8)没有Startup.cs,一切都在Program.cs中完成。所以我在Program.cs中有AddSwaggerGen(),但我仍然在尝试发布时出错。
有没有其他人遇到这个问题,并能够解决它?提前感谢!
我尝试将builder.Services.AddSwaggerGen()放入Program.cs

t30tvxxf

t30tvxxf1#

当我尝试将.NET 7 WEB API部署到Azure App Service时,即使我也遇到了这个问题。我已经将下面的代码添加到我的program.cs文件中。

app.UseSwagger();
app.UseSwaggerUI(x =>
{
    x.SwaggerEndpoint("/swagger/v1/swagger.json", "Web API V1");
if(app.Environment.IsDevelopment())
    x.RoutePrefix = "swagger"; // For localhost
else
    x.RoutePrefix = string.Empty;
//  For azure
}
);

字符串
这样,我就可以成功部署App了。

我的完整Program.cs文件

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI(x =>
{
    x.SwaggerEndpoint("/swagger/v1/swagger.json", "Web API V1");

if(app.Environment.IsDevelopment())
    x.RoutePrefix = "swagger"; 
else
    x.RoutePrefix = string.Empty;
}
);

app.UseSwagger();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

本地输出:


的数据
我使用Visual Studio Publish选项部署了Web API。


部署成功



Azure Web App输出



相关问题