Skip to content

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:

  1. Aus der Datei appsettings.json
  2. Aus der Datei appsettings.{EnvironmentName}.json (Standard: appsettings.Production.json)
  3. Aus den Umgebungsvariablen
  4. 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änderung
  • Staging: Keine Verhaltensänderung
  • Development: 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.