2016-07-09 2 views
0

프로덕션 환경에서 Azure SQL 데이터베이스에 대한 연결 문자열을 설정하는 데 어려움을 겪고 있습니다.asp.net core 1.0 프로덕션 환경을위한 SQL Server 연결 문자열?

json/xml 파일 대신 시스템 변수를 사용하려고합니다.

var builder = new ConfigurationBuilder(); builder.AddEnvironmentVariables("environment_variable_name"); var config = builder.Build(); Services.AddDbContext<AppDBContext>(options => options.UseSqlServer(config.GetConnectionString("environment_variable_name")));

하지만 그 환경 변수에서 값을 받고있는 것으로 보이지 않는다. 내가 뭘 잘못하고 있는지 알기!

디버깅 할 때 config 변수가 올바른 키/값으로 채워지는 것을 볼 수 있지만 config.GetConnectionString이 작동하지 않는 것 같습니다.

답변

0

연결 문자열이 environment_variable_name 이름 ENV 변수에 저장되어있는 경우, 당신은 다음과 같이 구할 수 있습니다

  1. GetConnectionStringConnectionStrings:environment_variable_name 키 구성을 찾습니다 : 여기에 두 가지 문제가
    var builder = new ConfigurationBuilder(); 
         builder.AddEnvironmentVariables(""); 
         var config = builder.Build(); 
         Services.AddDbContext<AppDBContext>(options => 
          options.UseSqlServer(config["environment_variable_name"])); 
    

    있었다

    , 아니 environment_variable_name. 따라서 env 변수 이름을 ConnectionStrings:environment_variable_name으로 변경하거나 config["environment_variable_name"]을 사용하여 값을 얻어야합니다.
  2. AddEnvironmentVariables의 첫 번째 인수는 변수 이름이 아니며 접두사입니다. 이것은 내가 가진 경우 ENV 변수 my_applicationmy_connectionstring라는 것을 의미한다, 다음 코드를 얻을 것이다 :

    var builder = new ConfigurationBuilder(); 
    builder.AddEnvironmentVariables("my_"); 
    var config = builder.Build(); 
    var appname = config["application"]; 
    var connstr = config["connectionstring]; 
    

당신이 당신의 구성이 가능한 모든 환경 변수를 어수선하게되지 않기 때문에 이것은 유용 만 사용중인 필터를 필터링하십시오. 그러나 접두사는 변수에 액세스 할 때 제거됩니다.

예에서 environment_variable_name이라는 이름의 변수가 있고 AddEnvironmentVariables("environment_variable_name");을 사용하는 경우 config[""]으로 값에 액세스 할 수 있습니다.