簡體   English   中英

ASP.NET 5 JSON與Azure Web App

[英]ASP.NET 5 JSON with Azure Web App

我正在嘗試為打算在Azure上托管的Web應用程序使用自定義配置。 該配置應可由環境變量覆蓋,以便我可以在Azure門戶上對其進行更改。

我嘗試使用以下代碼,但無法正常工作-詳情如下

   public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
   {
      var builder = new ConfigurationBuilder()
                        .AddJsonFile("config.json", optional:true)
                        .AddEnvironmentVariables();
      Configuration = builder.Build();            
   }

   public IConfigurationRoot Configuration { get; set; }

   public void ConfigureServices(IServiceCollection services)
   {
      services.AddOptions(); 
      services.Configure<AppSettings>(Configuration);
   }

在控制器中

public class HomeController : Controller
{
    private IOptions<AppSettings> Configuration;

    public HomeController(IOptions<AppSettings> configuration)
    {
        Configuration = configuration;
    }

    public async Task<IActionResult> Index()
    {
          string location = Configuration.Value.Location;   
          ...
    }

默認的config.json文件如下所示:

{
  "AppSettings": {
    "Location" : "Singapore"
  }
}

在Azure Portal上的“應用程序設置”下,我已將“ AppSettings:Location值分配給“ US”,我希望控制器中具有“ US”的值。

在本地,在ConfigureServices我可以看到值為Singapore,但在控制器操作Index中,該值為null。

我在這里想念什么嗎?

在讀取config.json時,您需要加載要閱讀的部分,需要按如下方式更新代碼:

public void ConfigureServices(IServiceCollection services)
{
    services.AddOptions();
    services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM