<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FLaufzeitumgebung</id>
	<title>Webframeworkk/ASP.NET Core/Laufzeitumgebung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FLaufzeitumgebung"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Laufzeitumgebung&amp;action=history"/>
	<updated>2026-08-19T16:51:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Laufzeitumgebung&amp;diff=265&amp;oldid=prev</id>
		<title>imported&gt;Import: Version 190</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Laufzeitumgebung&amp;diff=265&amp;oldid=prev"/>
		<updated>2026-02-18T21:46:58Z</updated>

		<summary type="html">&lt;p&gt;Version 190&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Einführung: Was sind Umgebungen? ==&lt;br /&gt;
&lt;br /&gt;
In ASP.NET Core sind Umgebungen benannte Konfigurationen, die es Ihnen ermöglichen, Einstellungen, Konfigurationen und Middleware-Pipelines für spezifische Szenarien anzupassen. Dies hilft bei der Verwaltung von Unterschieden zwischen der Entwicklung, dem Testen und dem produktiven Einsatz.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Die gängigsten Umgebungen sind:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Development (Entwicklung):&amp;#039;&amp;#039;&amp;#039; Ihre lokale Umgebung, in der Sie die Anwendung erstellen und testen. Hier benötigen Sie oft detaillierte Fehlermeldungen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Staging (Vorproduktion):&amp;#039;&amp;#039;&amp;#039; Eine Umgebung, die der Produktion sehr ähnlich ist und für letzte Tests und Validierungen genutzt wird.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Production (Produktion):&amp;#039;&amp;#039;&amp;#039; Die Live-Umgebung, mit der Ihre Endbenutzer interagieren. Sicherheit und Performance stehen hier im Vordergrund.&lt;br /&gt;
&lt;br /&gt;
== 2. Festlegen der Umgebung ==&lt;br /&gt;
&lt;br /&gt;
ASP.NET Core liest die aktuelle Umgebung beim Start aus der Umgebungsvariable &amp;lt;code&amp;gt;ASPNETCORE_ENVIRONMENT&amp;lt;/code&amp;gt;. Der Wert dieser Variable bestimmt die aktive Umgebung.&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Wege, diese Variable zu setzen:&lt;br /&gt;
&lt;br /&gt;
=== A. launchSettings.json (Für Visual Studio / Lokale Entwicklung) ===&lt;br /&gt;
&lt;br /&gt;
Diese Datei befindet sich im Ordner &amp;lt;code&amp;gt;Properties&amp;lt;/code&amp;gt; Ihres Projekts. Sie wird hauptsächlich von Visual Studio verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;profiles&amp;quot;: {&lt;br /&gt;
    &amp;quot;IhrProjektName&amp;quot;: {&lt;br /&gt;
      &amp;quot;commandName&amp;quot;: &amp;quot;Project&amp;quot;,&lt;br /&gt;
      &amp;quot;environmentVariables&amp;quot;: {&lt;br /&gt;
        &amp;quot;ASPNETCORE_ENVIRONMENT&amp;quot;: &amp;quot;Development&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== B. Über das Terminal / die Kommandozeile ===&lt;br /&gt;
&lt;br /&gt;
Sie können die Umgebung direkt beim Starten der Anwendung angeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;dotnet run --environment Staging&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Oder indem Sie die Umgebungsvariable in Ihrer Konsole setzen:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PowerShell:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;$env:ASPNETCORE_ENVIRONMENT = &amp;quot;Development&amp;quot;&lt;br /&gt;
dotnet run&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Windows Eingabeaufforderung (CMD):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;dos&amp;quot;&amp;gt;set ASPNETCORE_ENVIRONMENT=Production&lt;br /&gt;
dotnet run&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;macOS / Linux (Bash):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;export ASPNETCORE_ENVIRONMENT=Staging&lt;br /&gt;
dotnet run&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== C. Systemweite Umgebungsvariablen ===&lt;br /&gt;
&lt;br /&gt;
Für dauerhafte Einstellungen auf einem Server oder Entwicklungsrechner können Sie &amp;lt;code&amp;gt;ASPNETCORE_ENVIRONMENT&amp;lt;/code&amp;gt; auch als systemweite Umgebungsvariable konfigurieren.&lt;br /&gt;
&lt;br /&gt;
== 3. Verwendung von Umgebungen im Code (Program.cs) ==&lt;br /&gt;
&lt;br /&gt;
Sie können auf die aktuelle Umgebung zugreifen und bedingte Logik verwenden, um Ihre Anwendung zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf die Umgebung ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;var builder = WebApplication.CreateBuilder(args);&lt;br /&gt;
var environment = builder.Environment; &lt;br /&gt;
// environment.EnvironmentName enthält den Namen (z.B. &amp;quot;Development&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Bedingte Middleware-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Ein häufiges Beispiel ist die Fehlerseite. In der Entwicklung möchten Sie detaillierte Fehler sehen, in der Produktion jedoch eine generische Fehlerseite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;var app = builder.Build();&lt;br /&gt;
&lt;br /&gt;
if (app.Environment.IsDevelopment())&lt;br /&gt;
{&lt;br /&gt;
    app.UseDeveloperExceptionPage(); // Detaillierte Fehlerseite für Entwickler&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
    app.UseExceptionHandler(&amp;quot;/Error&amp;quot;); // Generische Fehlerseite für Benutzer&lt;br /&gt;
    app.UseHsts();&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Umgebungsspezifische Konfigurationsdateien ===&lt;br /&gt;
&lt;br /&gt;
ASP.NET Core lädt automatisch Konfigurationsdateien basierend auf der Umgebung. Dies ermöglicht es Ihnen, unterschiedliche Einstellungen (z.B. Datenbank-Connection-Strings) zu verwalten.&lt;br /&gt;
&lt;br /&gt;
# 1. &amp;lt;code&amp;gt;appsettings.json&amp;lt;/code&amp;gt;: Globale Einstellungen.&lt;br /&gt;
# 2. &amp;lt;code&amp;gt;appsettings.Development.json&amp;lt;/code&amp;gt;: Überschreibt Einstellungen für die Entwicklung.&lt;br /&gt;
# 3. &amp;lt;code&amp;gt;appsettings.Production.json&amp;lt;/code&amp;gt;: Überschreibt Einstellungen für die Produktion.&lt;br /&gt;
&lt;br /&gt;
== 4. Die IWebHostEnvironment Schnittstelle ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie in Ihren Controllern oder anderen Klassen Zugriff auf die Umgebungsinformationen benötigen, können Sie die &amp;lt;code&amp;gt;IWebHostEnvironment&amp;lt;/code&amp;gt;-Schnittstelle per Dependency Injection (DI) einbinden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;using Microsoft.AspNetCore.Mvc;&lt;br /&gt;
using Microsoft.AspNetCore.Hosting; // Wichtig für IWebHostEnvironment&lt;br /&gt;
&lt;br /&gt;
public class HomeController : Controller&lt;br /&gt;
{&lt;br /&gt;
    private readonly IWebHostEnvironment _webHostEnvironment;&lt;br /&gt;
&lt;br /&gt;
    public HomeController(IWebHostEnvironment webHostEnvironment)&lt;br /&gt;
    {&lt;br /&gt;
        _webHostEnvironment = webHostEnvironment;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public IActionResult Index()&lt;br /&gt;
    {&lt;br /&gt;
        // Zugriff auf Eigenschaften&lt;br /&gt;
        var envName = _webHostEnvironment.EnvironmentName;&lt;br /&gt;
        var webRoot = _webHostEnvironment.WebRootPath;&lt;br /&gt;
        var contentRoot = _webHostEnvironment.ContentRootPath;&lt;br /&gt;
&lt;br /&gt;
        // Prüfung der Umgebung&lt;br /&gt;
        if (_webHostEnvironment.IsDevelopment())&lt;br /&gt;
        {&lt;br /&gt;
            ViewBag.Message = &amp;quot;Wir sind im Entwicklungsmodus!&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return View();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wichtige Methoden von &amp;lt;code&amp;gt;IWebHostEnvironment&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;IsDevelopment()&amp;lt;/code&amp;gt;: Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn die Umgebung “Development” ist.&lt;br /&gt;
* &amp;lt;code&amp;gt;IsStaging()&amp;lt;/code&amp;gt;: Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn die Umgebung “Staging” ist.&lt;br /&gt;
* &amp;lt;code&amp;gt;IsProduction()&amp;lt;/code&amp;gt;: Gibt &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurück, wenn die Umgebung “Production” ist.&lt;br /&gt;
* &amp;lt;code&amp;gt;IsEnvironment(&amp;amp;quot;MeinCustomName&amp;amp;quot;)&amp;lt;/code&amp;gt;: Prüft auf benutzerdefinierte Umgebungsnamen.&lt;br /&gt;
&lt;br /&gt;
== 5. Developer Exception Page ==&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Developer Exception Page&amp;#039;&amp;#039;&amp;#039; ist ein Werkzeug, das bei Fehlern während der Entwicklung detaillierte Informationen anzeigt:&lt;br /&gt;
&lt;br /&gt;
* Stack Trace (Fehlerverlauf)&lt;br /&gt;
* Query-String Parameter&lt;br /&gt;
* Cookies&lt;br /&gt;
* HTTP-Header&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wichtig:&amp;#039;&amp;#039;&amp;#039; Diese Seite sollte &amp;#039;&amp;#039;&amp;#039;niemals&amp;#039;&amp;#039;&amp;#039; in der Produktion aktiviert werden, da sie sensible Informationen preisgeben könnte. Aktivieren Sie sie nur im Development-Modus (siehe Abschnitt 3).&lt;br /&gt;
&lt;br /&gt;
== 6. Der &amp;lt;environment&amp;gt; Tag Helper ==&lt;br /&gt;
&lt;br /&gt;
In Razor Views können Sie den &amp;lt;code&amp;gt;&amp;amp;lt;environment&amp;amp;gt;&amp;lt;/code&amp;gt; Tag Helper verwenden, um HTML-Inhalte basierend auf der aktuellen Umgebung ein- oder auszublenden. Dies ist besonders nützlich für das Laden von Skripten oder Stylesheets.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Include (Einschließen):&amp;#039;&amp;#039;&amp;#039; Zeigt den Inhalt nur in den angegebenen Umgebungen an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;environment include=&amp;quot;Development&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Unkomprimiertes CSS für einfacheres Debugging --&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;~/css/site.css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Debug-Modus aktiv&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/environment&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exclude (Ausschließen):&amp;#039;&amp;#039;&amp;#039; Zeigt den Inhalt in allen Umgebungen an, AUSSER den angegebenen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;environment exclude=&amp;quot;Development&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Minifiziertes CSS für bessere Performance in Produktion --&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;~/css/site.min.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/environment&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== 7. Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sicherheit:&amp;#039;&amp;#039;&amp;#039; Nutzen Sie umgebungsspezifische Konfigurationsdateien, um sensible Daten (wie Produktions-Datenbankpasswörter) nicht in der Entwicklungsumgebung zu speichern.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Keine Debug-Infos in Produktion:&amp;#039;&amp;#039;&amp;#039; Stellen Sie sicher, dass Tools wie die &amp;lt;code&amp;gt;DeveloperExceptionPage&amp;lt;/code&amp;gt; in der Produktion deaktiviert sind.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Logging:&amp;#039;&amp;#039;&amp;#039; Konfigurieren Sie Logging so, dass in der Entwicklung mehr Details (Verbose) und in der Produktion nur wichtige Fehler (Error/Warning) protokolliert werden.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Feature Flags:&amp;#039;&amp;#039;&amp;#039; Nutzen Sie Umgebungsvariablen, um bestimmte Features in verschiedenen Umgebungen an- oder abzuschalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Zusammenfassung:&amp;#039;&amp;#039;&amp;#039; Umgebungen in ASP.NET Core bieten eine flexible Möglichkeit, Ihre Anwendung zu steuern. Durch die Nutzung von &amp;lt;code&amp;gt;ASPNETCORE_ENVIRONMENT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IWebHostEnvironment&amp;lt;/code&amp;gt; und dem &amp;lt;code&amp;gt;&amp;amp;lt;environment&amp;amp;gt;&amp;lt;/code&amp;gt; Tag Helper können Sie sicherstellen, dass Ihre App in jeder Phase des Lebenszyklus (Entwicklung, Test, Produktion) optimal und sicher läuft.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>imported&gt;Import</name></author>
	</entry>
</feed>