【问题标题】:Feature management, feature toggle, feature flags not working with Azure App Configuration Store功能管理、功能切换、功能标志不适用于 Azure App Configuration Store
【发布时间】:2019-12-14 06:45:40
【问题描述】:

我正在尝试向 .net core 2.2 控制台应用程序添加功能标志。功能标志在 Azure 应用配置存储中定义。

当在 appsettings.json 文件中定义功能标志时,我遇到了一个问题,但它成功了。完整的控制台项目在我的SO question here 中定义。这不是问题。

我正在尝试关注tutorial,这让我发疯了。这里的问题是本教程并不简单。它是一个网络应用程序,在它的顶部,他使用了Secret manager tool

我根本无法按照教程中的描述使 web 应用程序工作,因此我尝试首先创建一个简单的控制台应用程序,但到目前为止无法成功使用 Azure App Config store。

这是迄今为止无法运行的控制台应用程序。任何帮助都深表感谢。

以下是添加到控制台项目的包。

  1. Microsoft.Extensions.Configuration.AzureAppConfiguration
  2. Microsoft.Extensions.Configuration.Json
  3. Microsoft.Extensions.DependencyInjection
  4. Microsoft.FeatureManagement
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.FeatureManagement;
using Microsoft.FeatureManagement.FeatureFilters;
using Microsoft.Extensions.Configuration.AzureAppConfiguration;

namespace ConfigurationConsoleApp
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var builder = new ConfigurationBuilder();
            var azureConnectionString = "<APP_CONFIGURATION_CONNECTION_STRING>";
            //builder.AddAzureAppConfiguration(options =>
            //{
            //    options.Connect(azureConnectionString).UseFeatureFlags();
            //});
            builder.AddAzureAppConfiguration(azureConnectionString);
            var config = builder.Build();
            Console.WriteLine(config["TestApp:Settings:Message"] ?? "Hello world!");
            var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
            var services = new ServiceCollection();

            //services.AddSingleton<IConfiguration>(configuration).AddFeatureManagement().AddFeatureFilter<PercentageFilter>().AddFeatureFilter<AccountIdFilter>();
            services.AddSingleton<IConfiguration>(config).AddFeatureManagement();//.AddFeatureFilter<PercentageFilter>().AddFeatureFilter<AccountIdFilter>();

            const string FeatureName = "Beta";

            using (ServiceProvider serviceProvider = services.BuildServiceProvider())
            {
                var featureManager = serviceProvider.GetRequiredService<IFeatureManager>();
                var enabled = await featureManager.IsEnabledAsync(FeatureName);
                Console.WriteLine($"The {FeatureName} feature is {(enabled ? "enabled" : "disabled")} ");
            }
        }
    }
}


【问题讨论】:

  • 您在代码 sn-p 中包含了一个连接字符串。请删除它,以免人们利用您的资源和访问您的数据。

标签: c# azure .net-core azure-app-configuration


【解决方案1】:

您是否查看过 Microsoft.FeatureManagement GitHub 存储库中的示例应用程序?

https://github.com/microsoft/FeatureManagement-Dotnet/tree/master/examples/FeatureFlagDemo https://github.com/microsoft/FeatureManagement-Dotnet/tree/master/examples/ConsoleApp

您的代码看起来应该可以工作。除非在名为“Beta”的 Azure 应用配置实例中创建了功能标志,否则它不会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2020-04-03
    • 2014-10-12
    • 2020-05-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多