.net core 使用Azure应用程序配置强制更新配置

.net core 使用Azure应用程序配置强制更新配置,.net-core,configuration,azure-app-configuration,.net Core,Configuration,Azure App Configuration,我想对我的微服务(MS)(具有相同配置的相同类型的多个实例)使用动态和集中配置策略,并且我正在使用Azure应用程序配置(AAC)。我希望尽量减少对AAC的调用,因此当一个MS启动时,我希望从AAC读取配置并将其保留,直到做出更改,即我不希望每次调用配置[“Env:service:some param”]都生成对AAC的调用。我已经通过eventgrid和servicebus事件解决了通知部分,因此所有MSs都会收到已进行更改的通知,但我确实找不到任何好的解决方案来强制按需从AAC重新加载配置。

我想对我的微服务(MS)(具有相同配置的相同类型的多个实例)使用动态和集中配置策略,并且我正在使用Azure应用程序配置(AAC)。我希望尽量减少对AAC的调用,因此当一个MS启动时,我希望从AAC读取配置并将其保留,直到做出更改,即我不希望每次调用配置[“Env:service:some param”]都生成对AAC的调用。我已经通过eventgrid和servicebus事件解决了通知部分,因此所有MSs都会收到已进行更改的通知,但我确实找不到任何好的解决方案来强制按需从AAC重新加载配置。 在Program.cs中,我通过以下方式连接AAC:

config.AddAzureAppConfiguration(options =>
                       options
                          .Connect(connection)
                          .ConfigureRefresh(refresh =>
                          {
                              refresh.Register(environment + ":" + service + ":<Some-param>",true)
                                     .SetCacheExpiration(TimeSpan.FromDays(1));
                              _environmentRefresher = options.GetRefresher();
                          })
config.AddAzureAppConfiguration(选项=>
选择权
.连接(连接)
.ConfigureRefresh(刷新=>
{
refresh.Register(环境+“:”+服务+“:”,true)
.SetCacheExpiration(TimeSpan.FromDays(1));
_EnvironmentRefresh=options.getRefresh();
})
为什么设置SetCacheExpiration(TimeSpan.FromDays(1))因为我不想对AAC进行不必要的调用,我认为如果我获取刷新器并在事件发生时触发它,配置将被重新加载,但情况似乎并非如此,因为SetCacheExpiration似乎覆盖了所有内容,所以我的问题是…给定的场景在.net core中不可解决,或者我可以在s中实现这一点吗某种方式?

如果要使用基于事件的刷新模型强制缓存过期,请确保调用。否则,您将遇到您提到的问题,即缓存尚未失效,并且刷新调用将是不可操作的