Как можно видеть на рис. 18.3, исполняющая среда ASP.NET работает совершенно независимо от самого Web-сервера. Итак, теперь вы понимаете, почему Visual Studio способна использовать интегрированный ASP.NET Development Server. ASP.NET Development Server является просто еще одним хостом для среды времени выполнения ASP.NET, и вы можете даже создать свой собственный хост исполняющей среды ASP.NET.
В остальной части этой главы мы сосредоточимся на обработке запросов с помощью службы IIS и ASP.NET. Как и c версией IIS 5.0, была выпущена совершенно новая разработанная версия службы IIS 6.0; вы увидите, что между IIS 6.0 и предыдущими версиями IIS существуют некоторые серьезные различия в плане базовой модели обработки.
Серия IIS 5.x предназначена для работы под управлением систем Windows 2000 и Windows XP. Как было отмечено ранее, запросы не обрабатываются напрямую ISAPI-расширением aspnet_isapi.dll. На самом деле ISAPI-расширение ASP.NET является обычным диспетчером. Оно получает запросы и направляет их исполняющей среде ASP.NET, которая работает полностью в контексте CLR.
При размещении Web-приложений ASP.NET в системах IIS 5.x исполняющая среда ASP.NET выполняется в отдельном рабочем процессе, называемом aspnet_wp.exe. Этот рабочий процесс содержит среду времени выполнения ASP.NET и выполняет фактическую обработку запросов. В рамках рабочего процесса приложения ASP.NET изолируются с помощью доменов приложений таким образом, чтобы одно Web-приложение не могло случайно нарушить память другого Web-приложения. ISAPI-расширение ASP.NET автоматически запускает процесс, если он еще не выполняется.
Любое другое ISAPI-расширение (написанное на C++ или на классическом Visual Basic) работает или непосредственно в процессе Web-сервера, или во внешнем процессе dllhost.exe, чтобы получить более качественную изоляцию, как показано на рис. 18.4.
Рис. 18.4. Модель процессов в IIS 5.х
предыдущая следующая страница вначало главы оглавление
750