Нам необходимо использовать 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, но она, похоже, совсем не влияет на конфигурацию. Если это невозможно, я могу использовать свои собственные атрибуты и утилиты.