swagger 在ASP.NET核心Web API中为生产环境设置launchurl

46qrfjad  于 2022-11-23  发布在  .NET
关注(0)|答案(4)|浏览(310)

我已经在我的Web API(ASP.NET Core 3.1)中实现了Swagger,我的启动URL是/swagger。我已经按照这个顺序编辑了我的launchSettings.json,它在我的开发机器中运行良好,但在生产服务器中发布后就不行了。
我已经了解到launchSettings.json只在本地开发机器上使用,如果我想在生产机器上使用这些设置中的某些设置,我需要将这些设置存储在appsettings.json文件中。
但我找不到如何设置此文件。如果能提供帮助,将不胜感激,提前感谢。

pgpifvop

pgpifvop1#

您可以查看此ASP.NET Core Environments
将生产配置文件添加到launchsettings.json文件中。

ggazkfy8

ggazkfy82#

在launchSettings.json中,启动URL是应用程序启动时打开的页面。这是您要查找的设置吗?(在我看来,在生产环境中这不是一个相关的设置。)
如果我在生产环境中的判断是正确的,那么当你在浏览器中打开/swagger URL时,它不会被加载。原因可能是Startup类中的“if(env.IsDevelopment){...}”或类似的语句,它有条件地添加了swagger中间件。

bxfogqkk

bxfogqkk3#

当我们从Visual Studio或使用.NET Core CLI运行.NET核心应用程序时,将使用此文件中的设置。
您需要记住的最重要的一点是,launchSettings.json文件仅在本地开发计算机中使用。这意味着,当我们将asp.net核心应用程序发布到生产服务器时,不需要此文件。
如果您具有某些设置,并且希望应用程序在将asp.net核心应用程序发布和部署到生产服务器时使用这些设置,则需要将这些设置存储在appsettings.json文件中。通常,在ASP.NET核心应用程序中,配置设置将存储在appsettings.json文件中。
你可以阅读这篇关于这个主题的好文章:Article

5m1hhzi4

5m1hhzi44#

正如其他人指出的,launchSettings.json环境仅在本地开发计算机中使用。
这里有一个简单的方法可以在生产服务器中通过端点重定向来实现它:

启动.cs

app.UseSwagger();
app.UseSwaggerUI();

app.UseHttpsRedirection();

app.UseRouting();

app.UseEndpoints(endpoints =>
{
    endpoints.MapGet("/", context => {
        context.Response.Redirect("swagger");
        return Task.CompletedTask;
    });
});

相关问题