2016-08-04 57 views
0

出於某種原因,我無法從Windows環境變量中檢索連接字符串,但它返回空值,但它在那裏。從環境變量中檢索連接字符串

這裏是我正在試圖找回它:

 public void ConfigureServices(IServiceCollection services) 
    { 
     // Add framework services. 
     services.AddDbContext<ApplicationDbContext>(options => 
      options.UseSqlServer(Configuration.GetConnectionString("WebApp5ConnectionStr"))); 

回答

0

我找到了解決辦法,那就是:

我不得不改變:

Configuration.GetConnectionString( 「WebApp5ConnectionStr」)

配置[ 「WebApp5ConnectionStr」]

+2

你的環境變量必須遵循相同的結構等你application.json,即'{ 「的ConnectionStrings」:{ 「WebApp5ConnectionStr」: 「」} }'。當你通過配置它的'Configure.GetSection(「ConnectionStrings」)[「WebApp5ConnectionStr」]或'Configuration.GetConnectionString(「WebApp5ConnectionStr」)''來加載它的時候。 – Tseng

+2

所以如果你想用環境變量覆蓋這個值,你必須命名環境變量「ConnectionStrings:WebApp5ConnectionStr」而不是「WebApp5ConnectionStr」。在Linux中,你必須用「_」替換「:」,所以「ConnectionStrings:WebApp5ConnectionStr」 – Tseng

+0

@Tseng你是說這個答案是錯誤的,只是使環境變量遵循正確的格式將工作?是否有後備優先?即配置首先檢查application.json,然後檢查環境? – pomeroy