gpt4 book ai didi

azure - 核心 WebJob 未观察到应用程序设置

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

我有一个核心 WebJob 部署到 Azure Web 应用程序中。我正在使用WebJobs version 3.0.6 .

我注意到,WebJob 代码不会立即拾取对连接字符串和应用程序设置的更改(通过 Azure Web UI 添加)。

这似乎与未立即显示在应用程序的 KUDU env 页面上的相同连接字符串和应用程序设置相关(尽管我承认这可能是转移注意力,并且可能是我不知道的一些 KUDU 缓存) 。

我过去部署过一些非核心 WebJobs,但没有遇到过这个问题,所以想知道它是否与核心相关?尽管我看不出这会如何影响显示 KUDU 的配置。

前几天我遇到了这个问题(WebJob 没有获取配置或在 KUDU 中显示配置)并且没有任何进展,所以就放弃了。当我第二天回来检查时,配置现在正确显示在 KUDU 中并被 WebJob 拾取。所以我想知道在此期间发生了什么,这意味着现在正在按预期获取配置。

我尝试在更改配置后重新启动 WebJob 并重新启动应用程序,但似乎都没有效果。

还值得注意的是,我在程序设置期间没有加载appSettings.json。话虽这么说,正在加载的连接字符串始终是来自该文件(即我的本地计算机 SQL Server/DB)的连接字符串。我的理解始终是,Azure Web UI 中的任何内容都会覆盖配置文件中的任何等效设置。 This post from David Ebbo表示在设置过程中调用 AddEnvironmentVariables() 将导致 Azure 配置被观察到,但这里的情况似乎并非如此。这是否已更改,或者是否按照惯例从该文件加载配置,因为它看不到来自 Azure 的内容?

这是我的 WebJob 程序代码:

    public static void Main(string[] args)
{
var host = new HostBuilder()
.ConfigureHostConfiguration(config =>
{
config.AddEnvironmentVariables();
})
.ConfigureWebJobs(webJobConfiguration =>
{
webJobConfiguration.AddTimers();
webJobConfiguration.AddAzureStorageCoreServices();
}
)
.ConfigureServices((context, services) =>
{
var connectionString = context.Configuration.GetConnectionString("MyConnectionStringKey");

services.AddDbContext<DatabaseContext>(options =>
options
.UseLazyLoadingProxies()
.UseSqlServer(connectionString)
);

// Add other services
})
.Build();

using(host)
{
host.Run();
}
}

所以我的问题是:

  • 通过 Azure Web UI 添加/更新的配置应多快在 KUDU 中显示?
  • 它们没有在 KUDU 中显示的事实是否与我的核心 WebJob 也没有看到更新的配置有关?
  • 即使我没有调用 .AddJsonFile("appSettings.json"),appSettings.json 是否也会加载?
  • 如何强制通过 Azure 添加的新配置立即可供我的 WebJob 使用?

最佳答案

指定配置源的顺序很重要,因为这确定了设置在多个位置存在时应用的优先级。在下面的示例中,如果 appsettings.json 和环境变量中存在相同的设置,则将使用环境变量中的设置。如果一项设置存在于多个位置,则指定的最后一个配置源“获胜”。 ASP.NET 团队建议最后指定环境变量,以便应用程序运行的环境可以覆盖部署的配置文件中设置的任何内容。

您可以引用here有关 ASP.NET Core 中的 Azure 应用服务应用程序设置和连接字符串的更多详细信息

关于azure - 核心 WebJob 未观察到应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55826682/

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