Blazor-Konfiguration in ASP.NET Core

In diesem Artikel erhalten Sie weitere Informationen zur Konfiguration von Blazor-Apps, einschließlich der App-Einstellungen, der Authentifizierung und Protokollierungskonfiguration.

Wichtig

Dieses Thema gilt für Blazor WebAssembly. Allgemeine Anleitungen zur Konfiguration von ASP.NET Core-Apps finden Sie unter Konfiguration in ASP.NET Core.

Blazor WebAssembly lädt die Konfiguration standardmäßig aus den folgenden App-Einstellungsdateien:

  • wwwroot/appsettings.json.
  • wwwroot/appsettings.{ENVIRONMENT}.json, wobei der Platzhalter {ENVIRONMENT} die Laufzeitumgebung der App ist.

Andere in der App registrierte Konfigurationsanbieter können auch Konfigurationen bereitstellen, aber nicht alle Anbieter und Anbieterfunktionen eignen sich für Blazor WebAssembly-Apps:

  • Azure Key Vault-Konfigurationsanbieter: Der Anbieter wird für die verwaltete Identität und die Anwendungs-ID-Szenarien (Client-ID) mit geheimem Clientschlüssel nicht unterstützt. Die Anwendungs-ID mit einem geheimen Clientschlüssel wird nicht für ASP.NET Core-Apps empfohlen, insbesondere nicht für Blazor WebAssembly-Apps, da der geheime Clientschlüssel nicht clientseitig für den Zugriff auf den Azure Key Vault-Dienst geschützt werden kann.
  • Azure-App-Konfigurationsanbieter: Der Anbieter eignet sich nicht für Blazor WebAssembly-Apps, da Blazor WebAssembly-Apps nicht auf einem Server in Azure ausgeführt werden.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Weitere Informationen zu Konfigurationsanbietern finden Sie unter Konfiguration in ASP.NET Core.

Konfiguration von App-Einstellungen

Die Konfiguration in App-Einstellungsdateien wird standardmäßig geladen. Im folgenden Beispiel wird ein Benutzeroberflächen-Konfigurationswert in einer App-Einstellungsdatei gespeichert und automatisch vom Blazor-Framework geladen. Der Wert wird von einer Komponente gelesen.

wwwroot/appsettings.json:

{
  "h1FontSize": "50px"
}

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/ConfigurationExample.razor:

@page "/configuration-example"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1 style="font-size:@Configuration["h1FontSize"]">
    Configuration example
</h1>

Clientsicherheitseinschränkungen verhindern den direkten Zugriff auf Dateien, einschließlich Einstellungsdateien für die App-Konfiguration. Um Konfigurationsdateien zusätzlich zu appsettings.json/appsettings.{ENVIRONMENT}.json aus dem Ordner wwwroot in die Konfiguration zu lesen, verwenden Sie einen HttpClient.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Im folgenden Beispiel wird eine Konfigurationsdatei (cars.json) in die Konfiguration der App gelesen.

wwwroot/cars.json:

{
    "size": "tiny"
}

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration hinzu:

using Microsoft.Extensions.Configuration;

Ändern Sie in Program.cs die vorhandene HttpClient-Dienstregistrierung so, dass der Client zum Lesen der Datei verwendet wird:

var http = new HttpClient()
{
    BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
};

builder.Services.AddScoped(sp => http);

using var response = await http.GetAsync("cars.json");
using var stream = await response.Content.ReadAsStreamAsync();

builder.Configuration.AddJsonStream(stream);

Arbeitsspeicher als Konfigurationsquelle

Im folgenden Beispiel wird ein MemoryConfigurationSource-Element in Program.cs verwendet, um eine zusätzliche Konfiguration bereitzustellen.

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration.Memory hinzu:

using Microsoft.Extensions.Configuration.Memory;

In Program.cs:

var vehicleData = new Dictionary<string, string>()
{
    { "color", "blue" },
    { "type", "car" },
    { "wheels:count", "3" },
    { "wheels:brand", "Blazin" },
    { "wheels:brand:type", "rally" },
    { "wheels:year", "2008" },
};

var memoryConfig = new MemoryConfigurationSource { InitialData = vehicleData };

builder.Configuration.Add(memoryConfig);

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/MemoryConfig.razor:

@page "/memory-config"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1>Memory configuration example</h1>

<h2>General specifications</h2>

<ul>
    <li>Color: @Configuration["color"]</li>
    <li>Type: @Configuration["type"]</li>
</ul>

<h2>Wheels</h2>

<ul>
    <li>Count: @Configuration["wheels:count"]</li>
    <li>Brand: @Configuration["wheels:brand"]</li>
    <li>Type: @Configuration["wheels:brand:type"]</li>
    <li>Year: @Configuration["wheels:year"]</li>
</ul>

Rufen Sie einen Abschnitt der Konfiguration in C#-Code mit IConfiguration.GetSection ab. Im folgenden Beispiel wird der wheels-Abschnitt für die Konfiguration im vorherigen Beispiel abgerufen:

@code {
    protected override void OnInitialized()
    {
        var wheelsSection = Configuration.GetSection("wheels");

        ...
    }
}

Authentifizierungskonfiguration

Geben Sie die Authentifizierungskonfiguration in einer App-Einstellungsdatei an.

wwwroot/appsettings.json:

{
  "Local": {
    "Authority": "{AUTHORITY}",
    "ClientId": "{CLIENT ID}"
  }
}

Laden Sie die Konfiguration für einen Identity-Anbieter mit ConfigurationBinder.Bind in Program.cs. Im folgenden Beispiel wird die Konfiguration für einen OIDC-Anbieter geladen.

Program.cs:

builder.Services.AddOidcAuthentication(options =>
    builder.Configuration.Bind("Local", options.ProviderOptions));

Konfiguration der Protokollierung

Fügen Sie der App das Paket Microsoft.Extensions.Logging.Configuration hinzu.

Hinweis

Einen Leitfaden zum Hinzufügen von Paketen zu .NET-Apps finden Sie in Installieren und Verwalten von Paketen unter Workflow der Nutzung von Paketen (NuGet-Dokumentation). Überprüfen Sie unter NuGet.org, ob die richtige Paketversion verwendet wird.

Geben Sie in der App-Einstellungsdatei die Protokollierungskonfiguration an. Die Protokollierungskonfiguration wird in Program.cs geladen.

wwwroot/appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

In Program.cs:

builder.Logging.AddConfiguration(
    builder.Configuration.GetSection("Logging"));

Konfiguration des Host-Generators

Lesen Sie die Host-Generatorkonfiguration aus WebAssemblyHostBuilder.Configuration in Program.cs.

In Program.cs:

var hostname = builder.Configuration["HostName"];

Zwischengespeicherte Konfiguration

Konfigurationsdateien werden zur Offlineverwendung zwischengespeichert. Bei progressiven Web-Apps (PWAs) können Sie Konfigurationsdateien nur beim Erstellen einer neuen Bereitstellung aktualisieren. Die Bearbeitung von Konfigurationsdateien zwischen Bereitstellungen hat aus folgenden Gründen keine Auswirkungen:

  • Benutzer verfügen über zwischengespeicherte Versionen der Dateien, die sie weiterhin verwenden können.
  • Die Dateien service-worker.js und service-worker-assets.js der PWA müssen bei der Kompilierung neu erstellt werden, wodurch der App beim nächsten Onlineaufruf des Benutzers signalisiert wird, dass die App neu bereitgestellt wurde.

Weitere Informationen zur Behandlung von Hintergrundupdates durch PWAs finden Sie unter ASP.NET Core Blazor-basierte progressive Web-Apps (PWAs).

Hinweis

Dieses Thema gilt für Blazor WebAssembly. Allgemeine Anleitungen zur Konfiguration von ASP.NET Core-Apps finden Sie unter Konfiguration in ASP.NET Core.

Blazor WebAssembly lädt die Konfiguration standardmäßig aus den folgenden App-Einstellungsdateien:

  • wwwroot/appsettings.json.
  • wwwroot/appsettings.{ENVIRONMENT}.json, wobei der Platzhalter {ENVIRONMENT} die Laufzeitumgebung der App ist.

Andere in der App registrierte Konfigurationsanbieter können auch Konfigurationen bereitstellen, aber nicht alle Anbieter und Anbieterfunktionen eignen sich für Blazor WebAssembly-Apps:

  • Azure Key Vault-Konfigurationsanbieter: Der Anbieter wird für die verwaltete Identität und die Anwendungs-ID-Szenarien (Client-ID) mit geheimem Clientschlüssel nicht unterstützt. Die Anwendungs-ID mit einem geheimen Clientschlüssel wird nicht für ASP.NET Core-Apps empfohlen, insbesondere nicht für Blazor WebAssembly-Apps, da der geheime Clientschlüssel nicht clientseitig für den Zugriff auf den Azure Key Vault-Dienst geschützt werden kann.
  • Azure-App-Konfigurationsanbieter: Der Anbieter eignet sich nicht für Blazor WebAssembly-Apps, da Blazor WebAssembly-Apps nicht auf einem Server in Azure ausgeführt werden.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Weitere Informationen zu Konfigurationsanbietern finden Sie unter Konfiguration in ASP.NET Core.

Konfiguration von App-Einstellungen

Die Konfiguration in App-Einstellungsdateien wird standardmäßig geladen. Im folgenden Beispiel wird ein Benutzeroberflächen-Konfigurationswert in einer App-Einstellungsdatei gespeichert und automatisch vom Blazor-Framework geladen. Der Wert wird von einer Komponente gelesen.

wwwroot/appsettings.json:

{
  "h1FontSize": "50px"
}

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/ConfigurationExample.razor:

@page "/configuration-example"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1 style="font-size:@Configuration["h1FontSize"]">
    Configuration example
</h1>

Clientsicherheitseinschränkungen verhindern den direkten Zugriff auf Dateien, einschließlich Einstellungsdateien für die App-Konfiguration. Um Konfigurationsdateien zusätzlich zu appsettings.json/appsettings.{ENVIRONMENT}.json aus dem Ordner wwwroot in die Konfiguration zu lesen, verwenden Sie einen HttpClient.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Im folgenden Beispiel wird eine Konfigurationsdatei (cars.json) in die Konfiguration der App gelesen.

wwwroot/cars.json:

{
    "size": "tiny"
}

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration hinzu:

using Microsoft.Extensions.Configuration;

Ändern Sie in Program.cs die vorhandene HttpClient-Dienstregistrierung so, dass der Client zum Lesen der Datei verwendet wird:

var http = new HttpClient()
{
    BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
};

builder.Services.AddScoped(sp => http);

using var response = await http.GetAsync("cars.json");
using var stream = await response.Content.ReadAsStreamAsync();

builder.Configuration.AddJsonStream(stream);

Arbeitsspeicher als Konfigurationsquelle

Im folgenden Beispiel wird ein MemoryConfigurationSource-Element in Program.cs verwendet, um eine zusätzliche Konfiguration bereitzustellen.

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration.Memory hinzu:

using Microsoft.Extensions.Configuration.Memory;

In Program.cs:

var vehicleData = new Dictionary<string, string>()
{
    { "color", "blue" },
    { "type", "car" },
    { "wheels:count", "3" },
    { "wheels:brand", "Blazin" },
    { "wheels:brand:type", "rally" },
    { "wheels:year", "2008" },
};

var memoryConfig = new MemoryConfigurationSource { InitialData = vehicleData };

builder.Configuration.Add(memoryConfig);

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/MemoryConfig.razor:

@page "/memory-config"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1>Memory configuration example</h1>

<h2>General specifications</h2>

<ul>
    <li>Color: @Configuration["color"]</li>
    <li>Type: @Configuration["type"]</li>
</ul>

<h2>Wheels</h2>

<ul>
    <li>Count: @Configuration["wheels:count"]</li>
    <li>Brand: @Configuration["wheels:brand"]</li>
    <li>Type: @Configuration["wheels:brand:type"]</li>
    <li>Year: @Configuration["wheels:year"]</li>
</ul>

Rufen Sie einen Abschnitt der Konfiguration in C#-Code mit IConfiguration.GetSection ab. Im folgenden Beispiel wird der wheels-Abschnitt für die Konfiguration im vorherigen Beispiel abgerufen:

@code {
    protected override void OnInitialized()
    {
        var wheelsSection = Configuration.GetSection("wheels");

        ...
    }
}

Authentifizierungskonfiguration

Geben Sie die Authentifizierungskonfiguration in einer App-Einstellungsdatei an.

wwwroot/appsettings.json:

{
  "Local": {
    "Authority": "{AUTHORITY}",
    "ClientId": "{CLIENT ID}"
  }
}

Laden Sie die Konfiguration für einen Identity-Anbieter mit ConfigurationBinder.Bind in Program.cs. Im folgenden Beispiel wird die Konfiguration für einen OIDC-Anbieter geladen.

Program.cs:

builder.Services.AddOidcAuthentication(options =>
    builder.Configuration.Bind("Local", options.ProviderOptions));

Konfiguration der Protokollierung

Fügen Sie der App das Paket Microsoft.Extensions.Logging.Configuration hinzu.

Hinweis

Einen Leitfaden zum Hinzufügen von Paketen zu .NET-Apps finden Sie in Installieren und Verwalten von Paketen unter Workflow der Nutzung von Paketen (NuGet-Dokumentation). Überprüfen Sie unter NuGet.org, ob die richtige Paketversion verwendet wird.

Geben Sie in der App-Einstellungsdatei die Protokollierungskonfiguration an. Die Protokollierungskonfiguration wird in Program.cs geladen.

wwwroot/appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Logging hinzu:

using Microsoft.Extensions.Logging;

In Program.cs:

builder.Logging.AddConfiguration(
    builder.Configuration.GetSection("Logging"));

Konfiguration des Host-Generators

Lesen Sie die Host-Generatorkonfiguration aus WebAssemblyHostBuilder.Configuration in Program.cs.

In Program.cs:

var hostname = builder.Configuration["HostName"];

Zwischengespeicherte Konfiguration

Konfigurationsdateien werden zur Offlineverwendung zwischengespeichert. Bei progressiven Web-Apps (PWAs) können Sie Konfigurationsdateien nur beim Erstellen einer neuen Bereitstellung aktualisieren. Die Bearbeitung von Konfigurationsdateien zwischen Bereitstellungen hat aus folgenden Gründen keine Auswirkungen:

  • Benutzer verfügen über zwischengespeicherte Versionen der Dateien, die sie weiterhin verwenden können.
  • Die Dateien service-worker.js und service-worker-assets.js der PWA müssen bei der Kompilierung neu erstellt werden, wodurch der App beim nächsten Onlineaufruf des Benutzers signalisiert wird, dass die App neu bereitgestellt wurde.

Weitere Informationen zur Behandlung von Hintergrundupdates durch PWAs finden Sie unter ASP.NET Core Blazor-basierte progressive Web-Apps (PWAs).

Hinweis

Dieses Thema gilt für Blazor WebAssembly. Allgemeine Anleitungen zur Konfiguration von ASP.NET Core-Apps finden Sie unter Konfiguration in ASP.NET Core.

Blazor WebAssembly lädt die Konfiguration standardmäßig aus den folgenden App-Einstellungsdateien:

  • wwwroot/appsettings.json.
  • wwwroot/appsettings.{ENVIRONMENT}.json, wobei der Platzhalter {ENVIRONMENT} die Laufzeitumgebung der App ist.

Andere in der App registrierte Konfigurationsanbieter können auch Konfigurationen bereitstellen, aber nicht alle Anbieter und Anbieterfunktionen eignen sich für Blazor WebAssembly-Apps:

  • Azure Key Vault-Konfigurationsanbieter: Der Anbieter wird für die verwaltete Identität und die Anwendungs-ID-Szenarien (Client-ID) mit geheimem Clientschlüssel nicht unterstützt. Die Anwendungs-ID mit einem geheimen Clientschlüssel wird nicht für ASP.NET Core-Apps empfohlen, insbesondere nicht für Blazor WebAssembly-Apps, da der geheime Clientschlüssel nicht clientseitig für den Zugriff auf den Azure Key Vault-Dienst geschützt werden kann.
  • Azure-App-Konfigurationsanbieter: Der Anbieter eignet sich nicht für Blazor WebAssembly-Apps, da Blazor WebAssembly-Apps nicht auf einem Server in Azure ausgeführt werden.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Weitere Informationen zu Konfigurationsanbietern finden Sie unter Konfiguration in ASP.NET Core.

Konfiguration von App-Einstellungen

Die Konfiguration in App-Einstellungsdateien wird standardmäßig geladen. Im folgenden Beispiel wird ein Benutzeroberflächen-Konfigurationswert in einer App-Einstellungsdatei gespeichert und automatisch vom Blazor-Framework geladen. Der Wert wird von einer Komponente gelesen.

wwwroot/appsettings.json:

{
  "h1FontSize": "50px"
}

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/ConfigurationExample.razor:

@page "/configuration-example"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1 style="font-size:@Configuration["h1FontSize"]">
    Configuration example
</h1>

Clientsicherheitseinschränkungen verhindern den direkten Zugriff auf Dateien, einschließlich Einstellungsdateien für die App-Konfiguration. Um Konfigurationsdateien zusätzlich zu appsettings.json/appsettings.{ENVIRONMENT}.json aus dem Ordner wwwroot in die Konfiguration zu lesen, verwenden Sie einen HttpClient.

Warnung

Konfiguration und Einstellungsdateien in einer Blazor WebAssembly-App sind für Benutzer sichtbar. Speichern Sie keine App-Geheimnisse, Anmeldeinformationen oder andere vertrauliche Daten in der Konfiguration oder den Dateien einer Blazor WebAssembly-App.

Im folgenden Beispiel wird eine Konfigurationsdatei (cars.json) in die Konfiguration der App gelesen.

wwwroot/cars.json:

{
    "size": "tiny"
}

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration hinzu:

using Microsoft.Extensions.Configuration;

Ändern Sie in Program.cs die vorhandene HttpClient-Dienstregistrierung so, dass der Client zum Lesen der Datei verwendet wird:

var http = new HttpClient()
{
    BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
};

builder.Services.AddScoped(sp => http);

using var response = await http.GetAsync("cars.json");
using var stream = await response.Content.ReadAsStreamAsync();

builder.Configuration.AddJsonStream(stream);

Arbeitsspeicher als Konfigurationsquelle

Im folgenden Beispiel wird ein MemoryConfigurationSource-Element in Program.cs verwendet, um eine zusätzliche Konfiguration bereitzustellen.

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Configuration.Memory hinzu:

using Microsoft.Extensions.Configuration.Memory;

In Program.cs:

var vehicleData = new Dictionary<string, string>()
{
    { "color", "blue" },
    { "type", "car" },
    { "wheels:count", "3" },
    { "wheels:brand", "Blazin" },
    { "wheels:brand:type", "rally" },
    { "wheels:year", "2008" },
};

var memoryConfig = new MemoryConfigurationSource { InitialData = vehicleData };

builder.Configuration.Add(memoryConfig);

Fügen Sie eine IConfiguration-Instanz in eine Komponente ein, um auf die Konfigurationsdaten zuzugreifen.

Pages/MemoryConfig.razor:

@page "/memory-config"
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

<h1>Memory configuration example</h1>

<h2>General specifications</h2>

<ul>
    <li>Color: @Configuration["color"]</li>
    <li>Type: @Configuration["type"]</li>
</ul>

<h2>Wheels</h2>

<ul>
    <li>Count: @Configuration["wheels:count"]</li>
    <li>Brand: @Configuration["wheels:brand"]</li>
    <li>Type: @Configuration["wheels:brand:type"]</li>
    <li>Year: @Configuration["wheels:year"]</li>
</ul>

Rufen Sie einen Abschnitt der Konfiguration in C#-Code mit IConfiguration.GetSection ab. Im folgenden Beispiel wird der wheels-Abschnitt für die Konfiguration im vorherigen Beispiel abgerufen:

@code {
    protected override void OnInitialized()
    {
        var wheelsSection = Configuration.GetSection("wheels");

        ...
    }
}

Authentifizierungskonfiguration

Geben Sie die Authentifizierungskonfiguration in einer App-Einstellungsdatei an.

wwwroot/appsettings.json:

{
  "Local": {
    "Authority": "{AUTHORITY}",
    "ClientId": "{CLIENT ID}"
  }
}

Laden Sie die Konfiguration für einen Identity-Anbieter mit ConfigurationBinder.Bind in Program.cs. Im folgenden Beispiel wird die Konfiguration für einen OIDC-Anbieter geladen.

Program.cs:

builder.Services.AddOidcAuthentication(options =>
    builder.Configuration.Bind("Local", options.ProviderOptions));

Konfiguration der Protokollierung

Fügen Sie der App das Paket Microsoft.Extensions.Logging.Configuration hinzu.

Hinweis

Einen Leitfaden zum Hinzufügen von Paketen zu .NET-Apps finden Sie in Installieren und Verwalten von Paketen unter Workflow der Nutzung von Paketen (NuGet-Dokumentation). Überprüfen Sie unter NuGet.org, ob die richtige Paketversion verwendet wird.

Geben Sie in der App-Einstellungsdatei die Protokollierungskonfiguration an. Die Protokollierungskonfiguration wird in Program.cs geladen.

wwwroot/appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

Fügen Sie Program.cs den Namespace für Microsoft.Extensions.Logging hinzu:

using Microsoft.Extensions.Logging;

In Program.cs:

builder.Logging.AddConfiguration(
    builder.Configuration.GetSection("Logging"));

Konfiguration des Host-Generators

Lesen Sie die Host-Generatorkonfiguration aus WebAssemblyHostBuilder.Configuration in Program.cs.

In Program.cs:

var hostname = builder.Configuration["HostName"];

Zwischengespeicherte Konfiguration

Konfigurationsdateien werden zur Offlineverwendung zwischengespeichert. Bei progressiven Web-Apps (PWAs) können Sie Konfigurationsdateien nur beim Erstellen einer neuen Bereitstellung aktualisieren. Die Bearbeitung von Konfigurationsdateien zwischen Bereitstellungen hat aus folgenden Gründen keine Auswirkungen:

  • Benutzer verfügen über zwischengespeicherte Versionen der Dateien, die sie weiterhin verwenden können.
  • Die Dateien service-worker.js und service-worker-assets.js der PWA müssen bei der Kompilierung neu erstellt werden, wodurch der App beim nächsten Onlineaufruf des Benutzers signalisiert wird, dass die App neu bereitgestellt wurde.

Weitere Informationen zur Behandlung von Hintergrundupdates durch PWAs finden Sie unter ASP.NET Core Blazor-basierte progressive Web-Apps (PWAs).