Какова цель расширения ASP.NET ISAPI aspnet_isapi.dll который размещен в рабочем процессе w3wp.exe в IIS 6.0?
В IIS 5.0 я понял, что это расширение ISAPI отвечает за обработку всех запросов asp.net (aspx и т. Д.). Он был загружен в процесс IIS и отвечал за отправку запросов рабочему процессу ASP.NET. aspnet_wp.exe с использованием именованных каналов.
В IIS 6.0 запросы достигают w3wp.exe непосредственно из ядра, а расширение ISAPI позже загружается в этот рабочий процесс.
В статье MSDN (IIS 6.0) Вот говорит Aspnet_isapi.dll - ставит в очередь запросы на обработку ядром ASP.NET с управляемым кодом и выполняет мониторинг работоспособности.
Это меня смущает.
Разве запросы уже не находятся в очереди на уровне ядра?
Разве это не unmanged код aspnet_isapi.dll? то есть обычная win32 dll? А разве не управляемый код w3wp?
Я совершенно потерялся: - |
Любая помощь будет оценена по достоинству!
В соответствии с Эта статья, при использовании модели процесса IIS6 aspnet_isapi.dll не используется для очереди запросов, но является отвечает за инициализацию CLR.
Когда поступает запрос, IIS проверяет тип ресурса и вызывает расширение ASP.NET ISAPI. Если модель процесса по умолчанию включена, aspnet_isapi ставит запрос в очередь и назначает его рабочему процессу. Любые данные запроса отправляются через асинхронный ввод-вывод. Если модель процессов IIS 6 включена, запрос автоматически помещается в очередь рабочего процесса (w3wp.exe), обрабатывающего пул приложений IIS, к которому это приложение принадлежит. Рабочий процесс IIS 6 ничего не знает об ASP.NET и управляемом коде. Он ограничивается обработкой расширения * .aspx и загрузкой модуля aspnet_isapi. Когда ASP.NET ISAPI работает в рамках модели процесса IIS 6, он ведет себя иначе и просто загружает среду CLR в контексте рабочего процесса w3wp.exe.