본문 바로가기
ASP.NET Core

ASP.NET Core 6] ASPNETCORE_ENVIRONMENT

by Fastlane 2022. 1. 20.
728x90
반응형

ASP.NET COre는 환경 변수를 사용하여 런타임 환경에 따라 앱 동작을 구성한다.

다음 환경 변수로 runtime 환경을 확인한다. 

 

1. DOTNET_ENVIRONMENT

2. WebApplication.CreateBuilder 함수가 호출될 때, ASPNETCORE_ENVIRONMENT를 호출하고, DOTNET_ENVIRONMENT를 override한다. 

 

IHostEnvironment.EnvironmentName 기본제공 값

  • Development : launchSettings.json 파일은 로컬 컴퓨터에서 ASPNETCORE_ENVIRONMENT를 Development로 설정한다. 
  • Staging
  • Production : DOTNET_ENVIRONMENT  ASPNETCORE_ENVIRONMENT가 설정되지 않은 경우 기본값입니다.

 

DOTNET_ENVIRONMENT값 설정하기

1. Development에서 launchSettings.json

Dev는 Prod에서 노출해서 안되는 기능(개발자 예외 페이지)을 활성화할 수 있다.

로컬 개발환경은 launchSettings.json파일에서 설정할 수 있다. 

해당 파일은, local dev환경에서만 사용되고, 배포되지 않는다. 

  "profiles": {
    "Employee": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7215;http://localhost:5215",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }

2. 시스템 환경 설정

launchSettings.json의 환경변수는 시스템 환경변수를 재정의한다. 

 

3. Program.cs

//var builder = WebApplication.CreateBuilder(args);

var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    EnvironmentName = Environments.Staging
});

Console.WriteLine($"Environment Name: {builder.Environment.EnvironmentName}");

var app = builder.Build();

 

4. web.config

게시프로필(.pubxml)에 추가 

<PropertyGroup>
  <EnvironmentName>Development</EnvironmentName>
</PropertyGroup>

게시 후, web.config에 자동으로 환경변수가 추가된 것을 확인할 수 있다. 

이 방법은 프로젝트가 게시될 때, web.config에 환경을 설정한다. 

 

결론

로컬 개발환경에서는 launchSetting.json을 사용하고 배포 시, web.config에 환경변수를 설정하는 것이 가장 베스트인 것 같다. 

728x90
반응형

댓글