ASP에서 환경 변수를 읽습니다.NET 코어
내 ASP를 실행하고 있습니다.NET Core 애플리케이션은 DNX를 사용하여 명령줄에서 환경 변수를 설정한 다음 다음과 같이 실행할 수 있었습니다.
set ASPNET_ENV = Production
dnx web
1.0에서 동일한 접근 방식 사용:
set ASPNETCORE_ENVIRONMENT = Production
dotnet run
작동하지 않습니다. 응용 프로그램이 환경 변수를 읽을 수 없는 것 같습니다.
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
null을 반환합니다.
제가 무엇을 빠뜨리고 있나요?
당신의 문제는 주변의 공간입니다.=.
이렇게 하면 효과가 있습니다(따옴표를 닫기 전에 공간에 주의).
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT "));
이후 공간ASPNETCORE_ENVIRONMENT이 코드는 오타가 아닙니다!문제의 문제는 (SET...에) 추가 공간이 있는 것이므로 GetEnvironmentVariable()에서 동일한 공간을 사용해야 합니다.
Isantipov가 논평에서 언급한 것처럼, 훨씬 더 나은 해결책은 SET 명령에서 공간을 완전히 제거하는 것입니다.
set ASPNETCORE_ENVIRONMENT=Production
이것은 @Dmitry의 이 답변에 대한 의견이어야 합니다(그러나 너무 길어서 별도의 답변으로 게시합니다).
사용하고 싶지 않을 것입니다.'ASPNETCORE_ENVIRONMENT '(후행 공백 포함) - ASP에 피쳐가 있습니다.가치에 따라 달라지는 NET Core'ASPNETCORE_ENVIRONMENT'(후행 공백 없음) - 예: 해결appsettings.Development.json대appsettings.Production.json(예: 여러 환경 관련 문서 문서 참조)
그리고 여러분이 순수하게 ASP 안에 머무르길 원하신다면요.사용하고자 하는 NET Core 패러다임IHostingEnvironment.Environment(설명서 참조) 읽기 대신 속성Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")직접적으로(물론 전자는 후자에서 설정되지만).예: Startup.cs 에서
public class Startup
{
//<...>
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
Console.WriteLine("HostingEnvironmentName: '{0}'", env.EnvironmentName);
//<...>
}
//<...>
}
개발 중 런타임에 환경 변수를 생성하면 매번 null이 됩니다.VS는 시작 시에만 EV를 읽기 때문에 비주얼 스튜디오를 다시 시작해야 합니다.
언급URL : https://stackoverflow.com/questions/37387235/read-environment-variables-in-asp-net-core
'codememo' 카테고리의 다른 글
| C#에서 메서드 그룹이란 무엇입니까? (0) | 2023.05.03 |
|---|---|
| 브라우저에서 Azure Blob Storage에 직접 파일을 업로드하시겠습니까? (0) | 2023.05.03 |
| 각 루프의 역순 (0) | 2023.04.28 |
| UIButton에서 테두리를 만드는 방법은 무엇입니까? (0) | 2023.04.28 |
| Excel이 설치되지 않은 경우 Excel 인스턴스를 만드는 방법 (0) | 2023.04.28 |