Поделиться через


Домены приложений (C# и Visual Basic)

Домены приложений обеспечивают гибкий и безопасный метод изоляции выполняющихся приложений.

Домены приложений обычно создаются и управляются хост-приложениями среды выполнения. В отдельных случаях может потребоваться, чтобы приложение программно взаимодействовало с доменами приложений для, например, выгрузки компонента без вынужденной остановки выполнения приложения.

Домены приложений помогают обеспечивать безопасность, отделяя приложения друг от друга и от данных других приложений. В одном процессе может выполняться несколько доменов приложений при том же уровне изоляции, что и при использовании раздельных процессов. Выполнение нескольких приложений в одном процессе повышает масштабируемость серверов.

В следующем примере кода создается новый домен приложения, после чего загружается и выполняется построенная ранее сборка HelloWorld.exe, хранящаяся на диске C.

' Create an Application Domain:
Dim newDomain As System.AppDomain = System.AppDomain.CreateDomain("NewApplicationDomain")

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

' Unload the application domain:
System.AppDomain.Unload(newDomain)
// 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# и Visual Basic).

  • Сбои в одном домене приложения не влияют на код, выполняющийся в другом домене приложения.

  • Можно прекратить выполнение и выгрузить код отдельных приложений, не останавливая процесс целиком. Выгрузить отдельные сборки или типы невозможно, домены приложений нужно выгружать целиком.

Связанные разделы

См. также

Основные понятия

Руководство по программированию на C#

Домены приложений

Сборки и глобальный кэш сборок (C# и Visual Basic)

Другие ресурсы

Руководство по программированию на Visual Basic

Программирование с использованием доменов приложений и сборок