Запутанные термины, относящиеся к пулу приложений, рабочему процессу и домену приложения - PullRequest
1 голос
/ 09 марта 2011

Редактировать 1

Меня смущает приведенное ниже утверждение, взятое из Что должны знать программисты ASP.NET о доменах приложений :

Вы создали два ASP.NET приложения на одном сервере, и не сделал ничего особенного конфигурации. Что происходит?

Один рабочий процесс ASP.NET будет разместить оба приложения ASP.NET. В Windows XP и Windows 2000 это процесс называется aspnet_wp.exe, и процесс проходит под охраной контекст локальной учетной записи ASPNET. На Windows 2003 рабочий процесс имеет имя w3wp.exe и работает под Учетная запись NETWORK SERVICE по умолчанию.

Он сказал, что один рабочий процесс порождает 2 домена приложений - один домен приложения для каждого приложения asp.net.

Но когда я вижу запущенные процессы следующим образом,

Изображение 1

enter image description here

Изображение 2

enter image description here

w3wp.exe называется рабочим процессом IIS, а не пулом приложений или доменом приложений.

Вопросы:

  1. Домен приложения равен пулу приложений?
  2. Запутанная вещь изображена на картинке 1. Почему Host Process Windows Service svchost.exe порождает 2 IIS Worker Process w3wp.exe? В моем понимании, процесс может содержать только домены приложения, а не другие процессы.

1 Ответ

2 голосов
/ 09 марта 2011

Домен приложения aka AppDomain (его представление класса) - это инкапсулированная среда в среде выполнения .NET, где сборки загружаются и работают.

Обычно на один управляемый процесс приходится один домен приложений / домен приложений, но может быть и больше. Здесь статья ссылается на 2 домена приложений внутри одного и того же процесса w3wp3.exe.

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

Чтобы ответить на ваш вопрос, обычно на один AppPool создается один домен приложений. Но приложение может загружать дополнительные AppDomains вручную в AppPool, но это было бы очень редко.

Обновление

Я думаю, что вы используете Process Explorer из Sysinternals. Не обращайте внимания на то, как он показывает древовидную структуру, он только показывает, какой процесс породил других процессов. На самом деле он показывает большинство процессов в проводнике, поскольку для его загрузки использовался проводник.

Также SVCHOST.exe - это неуправляемый исполняемый файл, и хотя он может размещать CLR и загружать домены приложений, обычно он этого не делает.

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...