Migrieren der Konfiguration zu ASP.NET Core

Im vorherigen Artikel haben wir damit begonnen, ein ASP.NET MVC-Projekt zu ASP.NET Core MVC zu migrieren. In diesem Artikel wird die Konfiguration migriert.

Anzeigen oder Herunterladen von Beispielcode (Vorgehensweise zum Herunterladen)

Einrichtungskonfiguration

ASP.NET Core verwendet nicht mehr die Dateien Global.asax und web.config, die in früheren Versionen von ASP.NET verwendet wurden. In den früheren Versionen von ASP.NET wurde die Anwendungsstartlogik in einer Application_StartUp-Methode innerhalb von Global.asax platziert. Später, in ASP.NET MVC, wurde eine Datei vom Typ Startup.cs ins Stammverzeichnis des Projekts eingefügt, und sie wurde beim Starten der Anwendung aufgerufen. ASP.NET Core hat diesen Ansatz vollständig übernommen, indem die gesamte Startlogik in der Datei Startup.cs platziert wurde.

Die Datei web.config wurde ebenfalls in ASP.NET Core ersetzt. Die Konfiguration selbst kann jetzt im Rahmen der unter Startup.cs beschriebenen Anwendungsstartprozedur konfiguriert werden. Die Konfiguration kann weiterhin XML-Dateien verwenden, aber in der Regel werden bei ASP.NET Core-Projekten Konfigurationswerte in einer JSON-formatierten Datei (wie etwa appsettings.json) platziert. Das Konfigurationssystem von ASP.NET Core kann auch problemlos auf Umgebungsvariablen zugreifen. Dadurch kann ein sichererer und stabilerer Speicherort für umgebungsspezifische Werte bereitgestellt werden. Dies gilt insbesondere für Geheimnisse wie Verbindungszeichenfolgen und API-Schlüssel, die nicht in die Quellcodeverwaltung eingecheckt werden sollten. Weitere Informationen zur Konfiguration in ASP.NET Core finden Sie unter Konfiguration in ASP.NET Core.

Warnung

In diesem Artikel wird eine lokale Datenbank verwendet, für die keine Authentifizierung des Benutzers erforderlich ist. Produktions-Apps sollten den sichersten verfügbaren Ablauf für die Authentifizierung verwenden. Weitere Informationen zur Authentifizierung für bereitgestellte Test- und Produktions-Apps finden Sie unter Sichere Authentifizierungsflows.

In diesem Artikel beginnen wir mit dem teilweise migrierten ASP.NET Core-Projekt aus dem vorherigen Artikel. Um die Konfiguration einzurichten, fügen Sie der Datei Startup.cs im Stammverzeichnis des Projekts den folgenden Konstruktor und die folgende Eigenschaft hinzu:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

Beachten Sie, dass die Datei Startup.cs zu diesem Zeitpunkt nicht kompiliert wird, da die folgende using-Anweisung noch hinzugefügt werden muss:

using Microsoft.Extensions.Configuration;

Fügen Sie dem Stammverzeichnis des Projekts mithilfe der entsprechenden Elementvorlage eine Datei vom Typ appsettings.json hinzu:

Hinzufügen von „AppSettings JSON“

Migrieren von Konfigurationseinstellungen aus „web.config“

Unser ASP.NET MVC-Projekt enthielt die erforderliche Datenbank-Verbindungszeichenfolge in web.config im <connectionStrings>-Element. In unserem ASP.NET Core-Projekt speichern wir diese Informationen in der Datei appsettings.json. Öffnen Sie appsettings.json, und beachten Sie, dass Folgendes bereits enthalten ist:

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
        }
    }
}

Ändern Sie in der oben dargestellten hervorgehobenen Zeile den Namen der Datenbank von _CHANGE_ME in den Namen Ihrer Datenbank.

Zusammenfassung

ASP.NET Core platziert die gesamte Startlogik für die Anwendung in einer einzelnen Datei, in der die erforderlichen Dienste und Abhängigkeiten definiert und konfiguriert werden können. Dadurch wird die Datei web.config durch ein flexibles Konfigurationsfeature ersetzt, das eine Vielzahl von Dateiformaten wie JSON sowie Umgebungsvariablen nutzen kann.