gpt4 book ai didi

.net - 门户中的 Azure 应用服务应用设置不会覆盖 appsettings.json 值

转载 作者:行者123 更新时间:2023-12-04 13:17:06 27 4
gpt4 key购买 nike

我在启动中有以下内容(asp.net core 2.2 proj):

 public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Configuration = configuration;
Environment = environment;

new ConfigurationBuilder()
.SetBasePath(Environment.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true)
.AddEnvironmentVariables()
.Build();
}

public void ConfigureServices(IServiceCollection services)
{
var appSettings = new AppSettings();

Configuration.Bind("appSettings", appSettings);

services.AddSingleton(appSettings);

....
}

我已设置值来覆盖 appsettings.json 中的所有应用设置值,但我的应用服务仍在使用 appsettings 中的内容,而不是我在门户中放置的内容。根据文档,应用程序服务的这些门户应用程序设置应覆盖 appsettings.json 文件并改为使用。我是不是漏掉了一步?

谢谢

编辑:

即使将启动更改为以下内容也不会获取我的 Azure 应用程序设置:

    public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Configuration = configuration;
Environment = environment;

Configuration = new ConfigurationBuilder()
.AddConfiguration(configuration)
.SetBasePath(Environment.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true)
.AddEnvironmentVariables()
.Build();
}

最佳答案

当您想在门户上获取 Appsettings 时,您需要使用 AppSettings:Hello 来引用 appsettings.*.json 文件中复杂结构内的变量名称。引用这个article 。以下是您可以引用的步骤。

家庭 Controller :

private AppSettings AppSettings { get; set; }
public HomeController(IOptions<AppSettings> appSettings)
{
AppSettings = appSettings.Value;
}
public IActionResult Index()
{
ViewBag.Message = AppSettings.Hello;
return View();
}

AppSettings.cs:

public class AppSettings
{
public string Hello { get; set; }
}

启动.cs:

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Configuration = configuration;
Configuration = new ConfigurationBuilder()
.AddConfiguration(configuration)
.SetBasePath(environment.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables()
.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}

appsettings.json:

"AppSettings": {
"Hello": "world"
}

在门户上:

enter image description here

输出:

enter image description here

关于.net - 门户中的 Azure 应用服务应用设置不会覆盖 appsettings.json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59312454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com