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
Ausführen von Code in einer anderen Anwendungsdomäne (C#-Programmierhandbuch)
Gewusst wie: Erstellen und Verwenden einer Anwendungsdomäne (C#-Programmierhandbuch)
C#-Programmiersprachenspezifikation
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
- 3.1 Starten der Anwendung
Siehe auch
Konzepte
Referenz
Assemblys und der globale Assemblycache (C#-Programmhandbuch)