안녕하세요.
현재 asp.net core를 사용하여 azure app service로 호스팅하고 있습니다.
Startup.ConfigureServices 함수에서 옵션패턴을 사용하여 appsetting 값을 가져오고 있습니다.
코드는 이런식으로 사용하여 가져오고 있습니다.
services.Configure(Configuration.GetSection(“FooOptions”));
문제는 다음과 같습니다.
Azure App Service 구성 메뉴에서 어플리케이션 구성을 FooOptions 값을 재정의 해서 추가했습니다.
그리고 Controller에서 FooOptions 값을 가져올 때 재정의된 값이 아닌 appsettings.json의 값을 읽어옵니다.
Startup에서 Configuration.GetSection(“FooOptions”).Value는 appsettings.json 값을 가져오고
Controller에서 호출할 때는 Azure에서 재정의한 값을 가져오고 있습니다.
여기서 웃긴건 ConnectionStrings도 재정의하여 사용하는데, ConnectionString은 정상적으로 재정의된 값을 가져오고 있습니다.
어떤게 잘못됐을까요?
1개의 좋아요
혹시 appSettings를 여러개 가지고 계신가요?
이말은 development, staging 과 같이 환경별로 가지고 있는지 입니다.
( 이것은 appsetting 파일을 솔루션 탐색기에서 펼치면 확인할 수 있습니다. )
Asp.net은 런치 셋팅으로 구성된 environment에 해당하는 appsetting를 사용합니다.
또한 여러개가 있다면 상속 개념이 적용됩니다.
그 관계를 살펴보시는게 좋을 걸 같습니다.
1개의 좋아요
lee
3
apsettings.json과 apsettings.development.json 두 환경파일을 가지고 있습니다.
제 질문은 appsettings.json과 azure에 구성메뉴에 정의한 키값목록을 같은데,
startup 시,
connection string만 azure에서 재정의한 값을 가져오는 반면(Configuration.GetConnectionString)
Configuration.GetSection 사용 시, appsettings.json 값을 가지고 옵니다.
이후
컨트롤러에서 호출 시, Configuration.GetSection 에서는 azure에서 재정의한 값을 가지고옵니다.
1개의 좋아요