2017-02-15 4 views
5

Nein, der Leitfaden scheint ziemlich klar (zumindest für mich), wie Produktionseinstellungen eingerichtet werden können. Sie reden nur darüber, wie das funktioniert, aber es gibt keine Schritt-für-Schritt-Anleitung. Ich habe folgendes getan:Bereitstellen von Bühne/Produktion Appsettings Asp.net Core

Der Versuch, die Umgebungsvariable im Projekt zu ändern, um diese Guide

ich diesen Fehler mit trotz der Microsoft Doc explizit zur Wiederverwendung ASPNETCORE_ENVIRONMENT Angabe. Ich kann diese Einstellungen speichern

Shows an ! next to ASPNETCORE_ENVIRONMENT

dieses Problem zu ignorieren, es sieht aus wie Sie diese Einträge manuell in launchSettings.json erstellen können, so habe ich:

{ 
    "iisSettings": { 
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": { 
     "applicationUrl": "http://localhost:18549/", 
     "sslPort": 44319 
    } 
    }, 
    "profiles": { 
    "IIS Express": { 
     "commandName": "IISExpress", 
     "launchBrowser": true, 
     "launchUrl": "api/v10Staff", 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Development", 
     "ASPNETCORE_ENVIRONMENT_T": "Test" 
     } 
    }, 
    "IIS Express (Stage)": { 
     "commandName": "IISExpress", 
     "launchBrowser": true, 
     "launchUrl": "api/v10Staff", 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Stage" 
     } 
    }, 
    "ApplicationName": { 
     "commandName": "Project", 
     "launchBrowser": true, 
     "launchUrl": "http://localhost:60000", 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Development", 
     "ASPNETCORE_ENVIRONMENT_T": "Test" 
     } 
    } 
    } 

Hinzufügen von Umgebungsvariablen zu Server

Ich habe die Umgebungsvariable entsprechend der Dokumentation hinzugefügt, die ich zugegangen binUnd fügte die `Neue Benutzervariable hinzu. „ASPNETCORE_ENVIRONMENT“ mit dem Wert „Stage“

Konfiguration Stück mit dieser Guide

Die nächste Frage, die ich habe, ist, zeigt niemand eine „Transformation“ des appsettings.Stage.json arbeiten. Wird die Stage-Datei nur vollständig über die Appsettings-Datei verwendet? Muss ich nur explizit angeben, was anders ist? Hier sind meine Dateien.

appsettings.Stage.json

{ 
    "WebServiceAccount": { 
    "AccountName": "WebUser", 
    "AccountPass": "Wedontcarethatthisishere" 
    }, 
    "ServerLocation": { 
    "ServerName": "http://appss.domain.com:8080", 
    "DBConnection": "server=svAppNameSTG;Max Pool Size=6000;database=ES;Integrated Security=SSPI;MultipleActiveResultSets=True" 
    } 
} 

appsettings.json

{ 
    "WebServiceAccount": { 
    "AccountName": "WebUser", 
    "AccountPass": "testpass1" 
    }, 
    "ServerLocation": { 
    "ServerName": "http://appst.domain.com:8080", 
    "DBConnection": "server=svAppNameTST;Max Pool Size=6000;database=ES;Integrated Security=SSPI;MultipleActiveResultSets=True" 
    } 
} 

Ich weiß, dass die Einstellungen und die Konfiguration Stück korrekt eingerichtet sind. Weil unsere Testumgebung funktioniert. Wenn ich dies auf unserem Stage-Server implementiere, habe ich bestätigt, dass es immer noch auf die Testbox zeigt.

Wenn jemand eine Anleitung hat oder erkennen kann, was falsch daran ist, wäre das großartig.

für die Nachwelt

hier der Baumeister Startup ist

var builder = new ConfigurationBuilder() 
       .SetBasePath(env.ContentRootPath) 
       .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
       .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
       .AddEnvironmentVariables(); 
      Configuration = builder.Build(); 

Antwort

4

Zunächst einmal, Sie scheinen die ASPNETCORE_ENVIRONMENT Variable mehrfach in Ihrem ersten Screenshot zu verwenden versuchen zu werden. Sie sollten keine neuen Variablen hinzufügen, sondern stattdessen den Wert der Variablen ändern, um die Umgebung wiederzugeben, die Sie verwenden möchten.Um die Stufe lokal zu testen, ändern Sie einfach den Wert der ASPNETCORE_ENVIRONMENT Variablen von Development zu Stage.

Ich bin nicht mit einer ASPNETCORE_ENVIRONMENT_T Variablen für irgendetwas gestoßen. Wenn dies etwas ist, das du selbst hinzugefügt hast, vermute ich, dass es aus dem Missverständnis der oben genannten stammt und es gibt wahrscheinlich einen besseren Weg, um das zu erreichen, was du willst. Es muss betont werden, dass alles in der launchSettings.json für Ihre lokale Maschine/Entwicklungsumgebung ist.


Einstellen der ASPNETCORE_ENVIRONMENT Variable auf Ihrer Bühne oder Produktionsserver unterscheiden sich je nachdem, wie Sie bewirten. IIS? Azurblau? AWS? Docker? Die folgende Antwort bespricht Setzen von Umgebungsvariablen für IIS:

Publish to IIS, setting Environment Variable


In Bezug auf die appsettings.json werden die Werte zusammengefasst. Alles wird zuerst aus der Basisdatei gelesen und dann wird alles, was von appsettings.{env.EnvironmentName}.json gelesen wird, anhängen oder überschreiben, was sich in der Basisdatei befindet. In dem von Ihnen angegebenen Beispiel könnte die WebServiceAccount/AccountName Variable aus appsettings.Stage.json weggelassen werden, da sie identisch mit dem Wert in der Basis ist.

Verwandte Themen