Как заставить AzureAppConfiguration работать с приложением. NET Framework 4.7.2 MVC? - PullRequest
0 голосов
/ 12 июля 2020

Нам необходимо использовать AzureAppConfiguration для управления флагами функций в приложении. net framework 4.7.2 MVC. Я следовал руководству Microsoft здесь , но этот учебник показывает эту конфигурацию только в консольном приложении, и в Интернете на удивление мало дискуссий по этому поводу (вероятно, потому, что это намного проще, чем я делаю для be).

Мой лучший перевод - поместить конфигурацию в Application_Start global.asax, но по какой-то причине конфигурация не обновляется.

4765 вариантов позже, я поставил код в часть времени жизни Application_BeginRequest. Это вызывает вызов службы конфигурации при каждом запросе (как и ожидалось).

Я не совсем уверен, что мне не хватает. Любая помощь приветствуется.

Мой тестовый проект находится на github здесь , но вам необходимо настроить приложение конфигурации azure с некоторыми функциями.

Здесь это пример моей последней попытки ...

public class MvcApplication : System.Web.HttpApplication
{
    private static IConfiguration _configuration = null;
    private static IConfigurationRefresher _refresher = null;

    public void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        _configuration = new ConfigurationBuilder()
            .AddAzureAppConfiguration(options =>
            {
                options.Connect(Environment.GetEnvironmentVariable("AppConfigConnectionString"))
                    .UseFeatureFlags().ConfigureRefresh(refresh =>
                    {
                        refresh.Register("FeatureManagement")
                            .SetCacheExpiration(TimeSpan.FromSeconds(10));
                    });

                _refresher = options.GetRefresher();
            }).Build();
    }

    protected void Application_BeginRequest()
    {
        FeatureUtilities.PopulateFlags(_configuration.GetSection("FeatureManagement").GetChildren());
    }
}

В идеале, я бы хотел использовать библиотеку FeatureManagement.AspNetCore, но она, похоже, совсем не влияет на конфигурацию. Если это невозможно, я могу использовать свои собственные атрибуты и утилиты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...