tag route parameter net data asp all asp.net asp.net-core asp.net-core-mvc kestrel-http-server

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