首页 > 解决方案 > IFeatureManager.IsEnabledAsync() 总是返回相同的(缓存的)值

问题描述

Microsoft.FeatureManagement.IFeatureManager 上的 IsEnabledAsync() 方法将始终返回相同的缓存值。例如,我可以将以下代码放入重复计时器中的 ASP.NET Core IHostedService 中,每次为功能调用 IsEnabledAsync 时,它都会返回与启动时相同的值。我可以在 Azure 中切换该功能,它仍会返回缓存的(不正确的)值。只有当我重新启动应用程序时,它才能正确获取功能设置。这是 IFeatureManager 的错误还是有更好的方法来做到这一点?我已经提交了一个github问题以防万一。

    var features = await _featureManager.GetFeatureNamesAsync()
        .ToListAsync();

    var enabledFeatures = await features.SelectAsync(async f =>
    {
        var enabled = await _featureManager.IsEnabledAsync(f);
        return enabled ? f : null;
    });

在此处输入图像描述

标签: azureasp.net-coreazure-feature-manager

解决方案


推荐阅读