route - ASP.NET Core variables de entorno de lectura
tag helpers asp net core (2)
Esto realmente debería ser un comentario a esta respuesta de (pero demasiado largo, por lo tanto, lo como una respuesta separada):
No querrá usar
''ASPNETCORE_ENVIRONMENT ''
(con un espacio final): hay características en aspnet core que dependen del valor de
''ASPNETCORE_ENVIRONMENT''
(sin espacio final), por ejemplo, la resolución de
appsettings.Development.json
de
appsettings.Development.json
frente a
appsettings.Production.json
.
(p. ej., ver
Trabajar con múltiples entornos documentos artículo
Resp. También, supongo que si desea permanecer puramente dentro del paradigma del núcleo de aspnet, querría usar la
IHostingEnvironment.Environment
(ver
docs
) en lugar de leer desde
Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
directamente (aunque el remitente es de curso establecido desde este último).
Por ejemplo, en 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);
//<...>
}
//<...>
}
Ejecutando mi aplicación ASP.NET Core usando dnx pude establecer variables de entorno desde la línea de comando y luego ejecutarlo así:
set ASPNET_ENV = Production
dnx web
Usando el mismo enfoque en 1.0:
set ASPNETCORE_ENVIRONMENT = Production
dotnet run
no funciona: la aplicación no parece poder leer las variables de entorno.
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
devuelve nulo
¿Qué me estoy perdiendo?
Su problema es espacios alrededor
=
.
Esto funcionará:
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT "));
O elimine espacios (mejor, vea el comentario de @Isantipov a continuación):
set ASPNETCORE_ENVIRONMENT=Production