Домены приложений (руководство по программированию в C#)
Обновлен: Ноябрь 2007
Домены приложений обеспечивают гибкий и безопасный метод изоляции выполняющихся приложений.
Домены приложений обычно создаются и управляются хост-приложениями среды выполнения. В отдельных случаях может потребоваться, чтобы приложение программно взаимодействовало с доменами приложений для, например, выгрузки компонента без вынужденной остановки выполнения приложения.
Домены приложений помогают обеспечивать безопасность, отделяя приложения друг от друга и от данных других приложений. В одном процессе может выполняться несколько доменов приложений при том же уровне изоляции, что и при использовании раздельных процессов. Выполнение нескольких приложений в одном процессе повышает масштабируемость серверов.
В следующем примере кода создается новый домен приложения, после чего загружается и выполняется построенная ранее сборка HelloWorld.exe, хранящаяся на диске C.
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);
}
Общие сведения о доменах приложений
Домены приложений обладают следующими свойствами:
Прежде чем сборка может быть выполнена, она должна быть загружена в домен приложения. Дополнительные сведения см. в разделе Сборки и глобальный кэш сборок (Руководство по программированию на C#).
Сбои в одном домене приложения не влияют на код, выполняющийся в другом домене приложения.
Можно прекратить выполнение и выгрузить код отдельных приложений, не останавливая процесс целиком. Выгрузить отдельные сборки или типы невозможно, домены приложений нужно выгружать целиком.
Разделы по теме
Программирование с использованием доменов приложений и сборок
Выполнение кода в другом домене приложения (Руководство по программированию в C#)
Спецификация языка C#
Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:
- 3.1 Запуск приложения
См. также
Основные понятия
Руководство по программированию в C#
Ссылки
Сборки и глобальный кэш сборок (Руководство по программированию на C#)