IIS 5.0 - Appdomain - PullRequest
       56

IIS 5.0 - Appdomain

1 голос
/ 16 августа 2011

Я немного сбит с толку. В IIS 5.0 все приложения ASP.NET выполняются внутри одного рабочего процесса (aspnet_wp.exe). Различные приложения изолированы appdomain. Я считаю, что фундаментальная функциональность домена приложения заключается в обеспечении изоляции приложения внутри процесса. Теперь перейдем к IIS 6.0. Я читал о пулах приложений в IIS 6. Многие сайты говорят, что в IIS 5.0, когда есть проблема с приложением, это влияет на другие приложения. Но разве это не защищено доменами приложений? Мне говорят, что пулы приложений в IIS 6.0 предотвращают такие неудачи. Я немного запутался здесь относительно того, что именно является преимуществом, которое предоставляют пулы приложений по сравнению с IIS 5.0. Мне также сказали, что в режиме изоляции рабочих процессов IIS 6 настройка различных пулов приложений (и, следовательно, различных рабочих процессов) является непременным делом. Но порождение новых процессов увеличивает использование памяти, и как можно утверждать, что это эффективный способ делать вещи? Кроме того, как HTTP.SYS узнает, как перенаправить запрос в соответствующий пул приложений?

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Не путайте пулы приложений и домены приложений.AppDomain - это граница изоляции внутри процесса.Они предназначены для изоляции и обеспечения безопасности вокруг управляемого кода, который выполняется.

Пулы приложений - это функция IIS, которая позволяет пулу обрабатывать запросы для нескольких сайтов.Они обрабатывают это путем запуска нескольких экземпляров AppDomain в рабочих процессах (aspnet_wp.exe или w3wp.exe).Хотя технически вы можете запустить несколько AppDomain экземпляров для каждого сайта, обычно это одно AppDomain для одного приложения IIS.

Если у вас есть несколько сайтов в одном пуле приложений (и это совместно использует рабочие процессы),если один из этих сайтов начинает потреблять много ресурсов, это может напрямую повлиять на другие сайты, работающие в том же пуле приложений.

Группируя (и разделяя) сайты в логические группы (пулы приложений), вы можете лучшеуправлять поведением сайтов.

HTTP.SYS - это стек драйверов режима ядра, являющийся частью подсистем Windows.Он обеспечивает управление протоколом HTTP в режиме ядра (версии, предшествующие IIS6, использовали winsock в режиме пользователя).Если HTTP.SYS работает на уровне ядра, в случае сбоя рабочего процесса запрос может быть поставлен в очередь, а затем направлен новому рабочему процессу, который будет запущен.

При создании сайта в IIS6он регистрирует сайт с помощью HTTP.SYS, который затем может направлять запросы, поступающие в соответствующий рабочий процесс.

0 голосов
/ 17 августа 2011

Домен приложений об обмене данными http://msdn.microsoft.com/en-us/library/system.appdomain.aspx а в IIS 6 вы можете добавить несколько приложений в пул приложений. Если у вас есть 2 приложения в одном пуле приложений, и одно из них продолжает падать, это влияет на другое, и IIS решает завершить работу всего пула приложений из-за нестабильности.

Поэтому, если у вас есть критически важные приложения, рекомендуется хранить их в собственном пуле приложений. Если у вас есть несколько приложений в IIS, вы маршрутизируете запросы с помощью заголовков хоста (или дополнительных внешних адресов IIP)

дополнительный ресурс, который рекомендует пул приложений для каждого рабочего сайта: http://forums.iis.net/t/1151476.aspx

хороший ресурс, который объясняет разницу между 5.0 и 6.0 изолированно: http://www.tech -faq.com / понимание-МИС-5-и-МИС-6.html

...