Beim Ausführen meiner ASP.NET Core-Anwendung mit DNX konnte ich Umgebungsvariablen über die Befehlszeile festlegen und dann wie folgt ausführen:
set ASPNET_ENV = Production
dnx web
Verwenden Sie den gleichen Ansatz in 1.0:
set ASPNETCORE_ENVIRONMENT = Production
dotnet run
funktioniert nicht - die Anwendung scheint keine Umgebungsvariablen lesen zu können.
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
gibt null zurück
Was vermisse ich?
Antworten:
Ihr Problem sind Leerzeichen
=
.Das wird funktionieren:
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
Oder entfernen Sie Leerzeichen (siehe Kommentar von @Isantipov unten):
set ASPNETCORE_ENVIRONMENT=Production
quelle
launchSettings
(wenn Sie von VS aus starren) hinzufügen. oder zur WebApp-Konfiguration, wenn Sie in Azure ausgeführt werden.set myvar=bla=bla bla
undecho %myvar%
- Sie werden sehenbla=bla bla
Dies sollte wirklich ein Kommentar zu dieser Antwort von @Dmitry sein (aber es ist zu lang, daher poste ich es als separate Antwort):
Sie möchten nicht
'ASPNETCORE_ENVIRONMENT '
(mit einem nachgestellten Leerzeichen) verwenden - es gibt Funktionen in ASP.NET Core, die vom Wert von'ASPNETCORE_ENVIRONMENT'
(kein nachfolgendes Leerzeichen) abhängen - z . B. das Auflösen vonappsettings.Development.json
vs.appsettings.Production.json
(Siehe z. B. Dokumentationsarbeit mit mehreren Umgebungen arbeitenUnd ich denke auch, wenn Sie nur innerhalb des ASP.NET Core-Paradigmas bleiben möchten, möchten Sie die Eigenschaft
IHostingEnvironment.Environment
(siehe Dokumentation ) verwenden, anstattEnvironment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
direkt daraus zu lesen (obwohl die erstere natürlich von der letzteren festgelegt ist). ZB in Startup.cspublic 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); //<...> } //<...> }
quelle
Environment.GetEnvironmentVariable
inStartup.cs
I für eine bestimmte Maschine Wert freu