Anwendungsdomänen (C#-Programmierhandbuch)

Aktualisiert: November 2007

Anwendungsdomänen stellen eine flexible und sichere Methode dar, um laufende Anwendungen zu isolieren.

Anwendungsdomänen werden normalerweise von Laufzeithosts erstellt und geändert. Gelegentlich kann es vorkommen, dass die Anwendung programmgesteuert mit der Anwendungsdomäne interagieren soll, um beispielsweise eine Komponente ohne Unterbrechung des Programmablaufs zu entladen.

Anwendungsdomänen erhöhen die Sicherheit, indem sie die Anwendungen und deren Daten voneinander trennen. Ein einzelner Prozess kann mehrere Anwendungsdomänen ausführen. Dies geschieht mit dem gleichen Grad an Isolation wie in separaten Prozessen. Das Ausführen mehrerer Anwendungen innerhalb eines einzelnen Prozesses erhöht die Serverskalierbarkeit.

Im folgenden Codebeispiel erstellen Sie eine neue Anwendungsdomäne. Danach laden Sie die zuvor erstellte Assembly HelloWorld.exe von Laufwerk C und führen Sie aus.

static void Main()
{
    // Create an Application Domain:
    System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

    // Load and execute an assembly:
    newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

    // Unload the application domain:
    System.AppDomain.Unload(newDomain);
}

Übersicht über Anwendungsdomänen

Anwendungsdomänen verfügen über die folgenden Eigenschaften:

  • Eine Assembly muss in eine Anwendungsdomäne geladen werden, bevor sie ausgeführt werden kann. Weitere Informationen hierzu finden Sie unter Assemblys und der globale Assemblycache (C#-Programmhandbuch).

  • Fehler in einer Anwendungsdomäne können keine Code beeinflussen, der in einer anderen Anwendungsdomäne ausgeführt wird.

  • Einzelne Anwendungen können angehalten werden, und der Code kann entladen werden, ohne den gesamten Prozess zu beenden. Sie können keine einzelnen Assemblys oder Typen entladen, nur vollständige Anwendungsdomänen.

Verwandte Abschnitte

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 3.1 Starten der Anwendung

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

Assemblys und der globale Assemblycache (C#-Programmhandbuch)