Konfiguration
Dieses Kapitel beinhaltet allgemeine Informationen zu den Konfigurationsmechanismen im CMI STS. Die konkreten Konfigurationsoptionen werden in den jeweiligen Kapiteln beschrieben.
Quellen
Der CMI STS unterstützt das Laden einer Konfiguration von mehreren Quellen:
- Aus der Datei
appsettings.json
- Aus der Datei
appsettings.{EnvironmentName}.json
(Standard: appsettings.Production.json) - Aus den Umgebungsvariablen
- Aus den Kommandozeilenargumenten
Alle Konfigurationsquellen können gleichzeitig verwendet werden. Dabei überschreibt eine Quelle die Konfiguration der vorherigen Quellen, wenn es zu Kollisionen kommt. Die Kommandozeile hat beispielweise gegenüber den Umgebungsvariablen Vorrang.
In dieser Dokumentation werden alle Konfigurationsbeispiele im JSON-Format gezeigt. Die selben Einstellungen können aber ohne weiteres mit Kommandozeilenargumenten oder Umgebungsvariablen gesetzt werden.
Intern wird die Konfiguration als eine Menge von Schüssel-Wert-Paaren betrachtet, die aus den Konfigurationsquellen aufgebaut wird. Die Schlüssel sind nicht Case-Sensitiv.
Beispiele
Gegeben sei das Konfigurationsobjekt Signing, dass die Eigenschaft PfxPassword hat.
Der Schlüssel Signing.PfxPassword
und der Wert --pass_4: word
wird folgendermassen dargestellt:
JSON Datei
Signing
wird mit einem JSON-Objekt dargestellt, das die Eigenschaft PfxPassword
hat.
{
"Signing": {
"PfxPassword": "--pass_4: word"
}
}
Umgebungsvariable
Der Trenner für komplexe Konfigurationsobjekte ist __.
cmd> set Signing__PfxPasswords="--pass_4: word"
Kommandozeile
Der Trenner für komplexe Konfigurationsobjekte ist :.
dotnet run --Signing:PfxPassword="--pass_4: word"
Eine Liste von Schlüsseln kann wie gefolgt angegeben werden:
JSON Datei
Diese JSON-Datei wird als Grundlage für die folgenden Beispiele verwendet. Sie beinhaltet eine benannte Liste (Mandant1 und Mandant2 in Tenants) und eine unbenannte, Index-basierte Liste (Client 0 und 1 in Clients).
"Tenants": {
"Mandant1": {
"CmiPrivateUri": "http://cmiserver:10104",
"Clients": [
{
"ClientId": "webAppClient",
//... weitere Eigenschaften des Clients
},
{
"ClientId": "appClient"
}
]
},
"Mandant2": {
"CmiPrivateUri": "http://cmiserver:10105",
//...
}
}
Umgebungsvariable
Ein Null-basierter Index wird für Listen verwendet (__0__
, __1__
, usw.).
cmd> set Tenants__Mandant1__CmiPrivateUrl="http://cmiserver:10104"
cmd> set Tenants__Mandant1__Clients__0__ClientId="webAppClient"
cmd> set Tenants__Mandant1__Clients__1__ClientId="appClient"
cmd> set Tenants__Mandant2__CmiPrivateUrl="http://cmiserver:10105"
Kommandozeile
Ein Null-basierter Index wird für Listen verwendet (:0:
, :1:
, usw.).
dotnet run \
--Tenants:Mandant1:CmiPrivateUrl="http://cmiserver:10104" \
--Tenants:Mandant1:Clients:0:ClientId="webAppClient" \
--Tenants:Mandant1:Clients:1:ClientId="appClient" \
--Tenants:Mandant2:CmiPrivateUrl="http://cmiserver:10105"
Weitere Dokumentation zu diesen Konfigurationsquellen ist im Artikel Configuration in ASP.NET Core enthalten.
Umgebung
Abhängig davon, in welcher Umgebung sich die ASP.NET Core Anwendung befindet, werden Debug-Features sowie Cache-Mechanismen eingeschaltet oder deaktiviert.
Die Umgebung wird über die Umgebungsvariable DOTNET_ENVIRONMENT
oder ASPNETCORE_ENVIRONMENT
festgelegt. Sind Sie nicht vorhanden, wird die Umgebung Production angenommen.
Die Komponenten des ASP.NET Core Frameworks reagieren auf die Umgebungen Production, Staging und Development. Die Umgebung Production konfiguriert das Framework für maximale Sicherheit und Performance. Der Artikel Environments beinhaltet weitere Dokumentation zu Umgebungen.
Der vom CMI STS kontrollierte Code reagiert wie gefolgt auf die Umgebungen:
Production
: Keine VerhaltensänderungStaging
: Keine VerhaltensänderungDevelopment
: Stack-Traces und interne Fehlerzustände werden dem Benutzer angezeigt
Konfigurationsänderungen laden
Derzeit ist das aktive Nachladen von Konfigurationsänderungen nicht aktiviert. Der CMI STS muss neu gestartet werden, damit Änderungen aktiv werden.