Internet Information Services — различия между версиями
Admin (обсуждение | вклад) (→Архитектура IIS) |
Admin (обсуждение | вклад) (→Архитектура IIS) |
||
Строка 32: | Строка 32: | ||
8. Пользователь получает результат обработки<br /> | 8. Пользователь получает результат обработки<br /> | ||
+ | *Источник: http://www.iis.net/learn/get-started/introduction-to-iis/introduction-to-iis-architecture | ||
*Источник: http://metanit.com/sharp/articles/mvc/10.php | *Источник: http://metanit.com/sharp/articles/mvc/10.php | ||
*Источник: https://technet.microsoft.com/en-us/library/cc734944%28v=ws.10%29.aspx | *Источник: https://technet.microsoft.com/en-us/library/cc734944%28v=ws.10%29.aspx |
Текущая версия на 21:44, 25 октября 2015
IIS (Internet Information Services, до версии 5.1 — Internet Information Server) — проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.
- Источник: Internet Information Services
Архитектура IIS
1. Пользователь посылает HTTP-запрос, обращаясь через браузер к определенному ресурсу на сервере. Этот запрос перехватывается драйвером HTTP.sys.
2. Драйвер HTTP.sys обращается к WAS для получения конфигурационных данных для запрошенного адреса URL
3. Менеджер конфигурации WAS считывает данные из файла applicationhost.config, в частности пул приложения и конфигурационные настройки сайта
4. Считанные данные WAS передает службе веб-публикации IIS (служба W3SVC)
5. Служба веб-публикации использует полученные от WAS данные для конфигурации HTTP.sys. Затем драйвер HTTP.sys помещает пришедший запрос в очередь порта завершения ввода-вывода (I/O completion port), которую обрабатывает WAS.
6. WAS использует выделенный пул потоков для обработки очереди. По умолчанию данный пул потоков может использовать до 250 потоков на одно ядро компьютера. Если к данному моменту не был запущен рабочий процесс, ассоциированный с запрошенным URL, то WAS запускает приложение w3wp.exe, в рамках которого работает рабочий процесс обработки запросов.
7. В рамках запущенного рабочего процесса ASP.NET проверяет, сколько запросов обрабатывается в текущий момент времени. Если их число превышает лимит по умолчанию в 5000 запросов, то новый запрос помещается в очередь. Однако если очередь достигла своего лимита в 1000 запросов, то данный запрос отвергается, и в ответ клиенту посылается статусный код ошибки 503.
- Если запрос направлен к статическому файлу, который не содержит кода .NET-языков, то ASP.NET посылает содержимое этого файла в порт завершения ввода-вывода IIS, а оттуда - пользователю, сделавшему запрос. В остальных случаях ASP.NET отправляет запрос в пул потоков CLR.
- CLR обрабатывает запрос. На этой стадии запускается непосредственно код нашего веб-приложения или веб-сайта, размещенного на веб-сервере.
- CLR (Common language runtime) — общеязыковая исполняющая среда. Она обеспечивает интеграцию языков и позволяет объектам благодаря стандартному набору типов и метаданным), созданным на одном языке, быть «равноправными гражданами» кода, написанного на другом.
- После того, как среда CLR закончит обработку запроса, она посылает результаты драйверу HTTP.sys, а тот - на порт завершения ввода-вывода IIS.
8. Пользователь получает результат обработки
- Источник: http://www.iis.net/learn/get-started/introduction-to-iis/introduction-to-iis-architecture
- Источник: http://metanit.com/sharp/articles/mvc/10.php
- Источник: https://technet.microsoft.com/en-us/library/cc734944%28v=ws.10%29.aspx
- Источник: http://habrahabr.ru/post/189086/
- HTTP.SYS - драйвер принимающий обращения по протоколам HTTP/HTTPS
- Драйвер уровня ядра HTTP.sys является посредником между приложением и операционной системой. В архитектуре IIS он выполняет две задачи:
- HTTP.sys является протокольным слушателем (protocol listeners) по умолчанию в IIS. То есть HTTP.sys прослушивает все запросы, которые, используют протоколы HTTP и HTTPS, и затем передает эти запросы другим компонентам IIS для дальнейшей обработки.
- HTTP.sys также представляет стек протокола HTTP. А именно HTTP.sys выполняет кэширование, постановку запросов в очередь, предобработку и ряд других функций.
- Источник:
- Драйвер уровня ядра HTTP.sys является посредником между приложением и операционной системой. В архитектуре IIS он выполняет две задачи:
- World Wide Web Publishing Service (W3SVC)
- Windows Process Activation Service (термин появился в IIS7)