Ответ 1
Ну, я думаю, что поток прошел гладко до окончательного вывода, но в конце концов это было иначе.
Я постараюсь ответить на вопрос, исходя из моего понимания и использования того, что я только что прочитал на других веб-сайтах.
Прежде всего, я сам стараюсь избегать использования термина, кроме пулов приложений, так как это может привести к запутанности. Теперь, перейдя к процессам, пулам и AppDomain, я вижу изображение следующим образом:
Пул приложений - это, короче говоря, область памяти, которая поддерживается и запускается процессом W3WP.exe, который называется Worker Process. Перезапуск пула приложений означает, что этот процесс прекращается, устраняя его из памяти, а затем создавая новый рабочий процесс с новым назначенным идентификатором процесса.
Что касается доменов приложений, я рассматриваю их как подмножества областей памяти в пределах вышеупомянутого региона, который играет роль контейнера. Другими словами, процесс в памяти, W3WP.exe в этом случае, является областью макросохранения для приложений, в которых хранятся области подмножества, называемые областями приложений. Сказав это, один процесс в памяти может хранить разные Домены приложений, по одному для каждого приложения, которое назначено для запуска в пределах данного пула приложений.
Когда речь идет об утилизации, как я изначально сказал, это то, что я сам резервирую только для приложений. Для AppDomains я предпочитаю использовать термин "перезагрузка", чтобы избежать неправильного понимания. Исходя из этого, перезапуск AppDomain означает запуск по данному приложению с новыми добавленными настройками, такими как обновление существующей конфигурации. Это происходит в границах этого субрегиона памяти, называемого AppDomain, который в конечном итоге лежит в процессе, связанном с соответствующим пулом приложений. Эти новые настройки могут быть получены из таких файлов, как
web.config, machine.config, global.asax, Каталог корзин, App_Code,
и могут быть и другие.
AppDomain изолированы друг от друга, что делает общий смысл. Если это не так, если изменения в файле web.config, скажем, приложения 1, требуется перезагрузка пула, все остальные приложения, назначенные этому пулу, будут перезагружены, что было бы совершенно не желательно Microsoft и кем бы то ни было.
Подводя итоги,
- Процесс (W3WP.exe)
- AppDomain 1
- AppDomain 2
- AppDomain 3
- AppDomain n
n = количество назначенных приложений в пуле приложений, управляемых данным W3WP.exe
- Процессы - это области памяти, изолированные друг от друга.
- AppDomains являются областями под-памяти, изолированными друг от друга, в рамках одного процесса
- Для глобальных изменений параметров IIS может потребоваться перезагрузка пула приложений (убийство и запуск нового рабочего процесса, W3WP.exe)
- Изменения в приложении изменяют проблемы AppDomains, и они могут быть перезапущены после изменений в некоторых определенных файлах, таких как те, которые указаны выше
Для получения дополнительной информации я рекомендую:
Что заставляет пул приложений в IIS перерабатывать?
Отношения с Бразилией!