首页 > 解决方案 > 未应用应用服务中的嵌套应用程序设置

问题描述

我有一个 .NET 5.0 应用程序部署到 Azure 上的 Linux 应用服务。我已经设置了一个嵌套应用程序设置,但它没有被应用。

应用程序设置是ImageProcessingConfig__CompressionQualityPercentage

appsettings.json 包含:

    "ImageProcessingConfig": {     
       "CompressionQualityPercentage": 5,
        ...

程序类有以下内容:

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args) 
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

启动中的 ConfigureServices 方法:

            var imageProcessingOptions = new ImageProcessingOptions ();
            Configuration.Bind (ImageProcessingOptions.ImageProcessingConfig, imageProcessingOptions);
            services.AddScoped<IImageProcessor> (c => new ImageProcessor (imageProcessingOptions));

标签: asp.net-core.net-coreazure-web-app-service.net-5

解决方案


看起来这是在 ConfigureServices() 中使用 Configuration.Bind() 的结果。在进行以下更改后,它按预期工作:

           Configuration.Bind (ImageProcessingOptions.ImageProcessingConfig, imageProcessingOptions);
           imageProcessingOptions.CompressionQualityPercentage = int.Parse(Configuration["ImageProcessingConfig:CompressionQualityPercentage"]);
           services.AddScoped<IImageProcessor> (c => new ImageProcessor (imageProcessingOptions));

推荐阅读