azure 应用服务应用设置未被覆盖

mdfafbf1  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(127)

我尝试获得一个非常基本的示例,以覆盖应用程序设置(作为起点)。我使用.Net Core 6从模板创建了一个新的Web应用程序。唯一的变化是我添加了如下所示的设置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "TestSetting": "TestValue"
}

我已经把它挂接到一个应用服务应用程序中,应用程序设置如下:

我希望TestSetting的值是TestValue3。当我查看Kudu时,我看到appsettings.json根本没有更改。
我已经在这方面工作了一段时间。我在网上看到的一切都告诉我,这应该工作。应用程序按预期显示,只是应用程序设置永远不会被覆盖。
编辑:有人要求提供program.cs文件,所以它在这里。我没有改变它的默认值。

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();
bq3bfh9z

bq3bfh9z1#

如果您想覆盖任何App setting值,则必须在appsettings.json文件中设置密钥(使用虚拟值)。

  • 必须在Azure Configuration Application Settings中使用所需值设置相同的密钥名称。

当我们在Azure App settings中设置键时,指定的键值将被appsettings.json文件值覆盖。

  • 如果未设置这些值,则将采用appsettings.json中的相同值。

当我查看Kudu时,我看到appsettings.json根本没有更改。
部署的appsettings.json不会有任何变化。
更新后的值可以在KUDU Console =〉Environment =〉App Settings中看到。

显示.cshtml文件中的值:

当应用程序在本地运行时,将采用appsettings.json中的值。

Index.cshtml:

@inject IConfiguration configuration
<h1 class="display-4">App Setting Value - @configuration["TestSetting"]</h1

本地输出:

  • 对于已部署的Azure App service,这些值取自Azure应用程序设置。
    部署App输出:

相关问题