Iis изолирование приложений


Содержание

Изолирование процессов посредством пулов приложений

Если у меня есть сайт, который является (непреднамеренно) потребляет огромное количество процессоров, но потребление памяти находится в пределах нормальных параметров, он отрицательно влияет на производительность всех остальных сайтов в отдельных пулах App. Эти сайты борются, чтобы получить небольшую часть процессорного времени, в результате запросов, которые обычно принимают миллисекунды, чтобы закончить, в конечном итоге принимает> 10 секунд.

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

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

Многие сайты утверждают, это, и вот выдержка из одного, который указывает на то, что это правда.

«В этой статье (связаны), я объяснил, что проблема с одного веб-сайта может повлиять на другие веб-сайты, размещенные на сервере. Тем не менее, вы можете предотвратить эти проблемы путем размещения каждого размещенного веб-сайта в свой собственный пул приложений.»

На самом деле это не совсем случаться, как предложено. Я говорил с экспертами Microsoft, и они также сказали, что если процессор исчерпывается процессом, другие бассейны App не получат долю — т.е. отдает приоритет процесса, который потребляет процессор; но я не могу вполне поверить, что нет никакого решения или защиты от этого.

Предложения, которые я получил, чтобы инициировать опцию «предел CPU» в настройках пула приложений. Это позволяет убить процесс, если он превысил лимит в течение определенного интервала. Большие, но и другие сайты будут по-прежнему испытывать деградированное обслуживание в течение 5/10 минут, пока это не будет обнаружено и пинков в.

Моя другая проблема с этим высокая нагрузка на процессор может быть вызвана из законной задачи; Я не хочу, чтобы процесс сбрасываться в середине потока, и я хочу, чтобы другие пулы App, чтобы получить долю процессорного времени. Понижение приоритета процесса до «ниже нормы» в то время как эти задачи полные позволяет другим сайтам стать отзывчивым; Однако этот процесс получит ограниченный или нет доли процессора, если другой пул приложений с более высоким приоритетом, пока не начнет работать горячая.

Есть ли способ настройки IIS7, так что App бассейны могут иметь долю процессора, когда есть ограниченные ресурсы процессора доступны? Есть ли улучшить IIS8 по этому поводу? Существуют ли какие-либо альтернативные решения для поддержания производительности / одинаково выгибаться ресурсы для w3wp процессов?

PS Я ищу способ улучшить производительность сервера, когда происходят события, такие, как они; Я на самом деле не имеют тонны горячих процессов, запущенных на моем сервере через каждые 5 минут, но необходимо для защиты от неожиданного случайного возникновения.

Иллюстрированный самоучитель по Microsoft Windows 2003

Ключевые компоненты IIS. Режимы изоляции процессов.

В рамках операционной системы одни процессы, ассоциированные с отдельными компонентами IIS, функционируют в пользовательском режиме (user mode), а другие в режиме ядра (kernel mode).

  • Драйвер HTTP.sys. Функционирует в режиме ядра операционной системы, осуществляя прослушивание протокола HTTP. Данный драйвер является частью сетевой подсистемы Windows Server 2003, являясь, тем не менее, ключевым компонентом IIS 6.0. Каждый веб-сайт, созданный в рамках IIS, регистрируется драйвером HTTP.sys, который перенаправляет веб-запросы от пользователей процессам, функционирующим в пользевательском режиме. Аналогичным образом HTTP.sys возвращает пользователям ответы на их запросы.
  • Компонент управления и мониторинга службы WWW. Данный компонент представляет собой часть службы WWW, отвечающую за управление процессами. Компонент реализует функции управления службой WWW и взаимодействует с метабазой IIS для получения информации о конфигурации служб (полученная информация либо передается через HTTP.sys, либо используется для управления рабочими процессами). Другой функцией компонента управления и мониторинга службы WWW является управление рабочими процессами.
  • Рабочие процессы. Рабочий процесс представляет собой приложение, функционирующее в пользовательском режиме. Рабочий процесс реализуется в виде запускаемого файла W3vvp.exe и контролируется компонентом управления и мониторинга службы WWW. Рабочие процессы используют драйвер HTTP.sys для взаимодействия с клиентами (получение запросов и передача запрашиваемых данных).
  • Процесс Inetinfo.exe. Данный процесс функционирует в пользовательском режиме. Этот процесс обеспечивает работу служб FTP, SMTP, NNTP и отвечает за поддержание метабазы IIS. В случае, когда службы IIS 6.0 функционируют в режиме изоляции IIS 5.0 (IIS 5.0 isolation mode), процесс Inetinfo.exe обеспечивает работу одиночного рабочего процесса.

Режимы изоляции процессов

IIS 6.0 может функционировать в одном из двух режимов изоляции процессов:

  • режим изолированных рабочих процессов;
  • режим изоляции US 5.0.

В каждом из этих режимов службы IIS задействуют драйвер HTTP.sys для взаимодействия с пользователями по протоколу HTTP, однако принципы функционирования IIS в этих режимах различаются. Режим изолированных рабочих процессов (worker processes isolation mode) в полной мере использует архитектуру IIS 6.0. Режим изоляции /IS 5.0 используется в том случае, когда веб-приложение использует специфические функциональные возможности предыдущих версий IIS.

Режим изолированных рабочих процессов является наиболее предпочтительным режимом функционирования IIS, поскольку этот режим обеспечивает приложениям наилучшую производительность. Кроме того, данный режим обеспечивает более высокий уровень безопасности, поскольку в данном режиме рабочие процессы работают с полномочиями сетевой службы (учетная запись NetworkService). В случае режима изоляции IIS 5.0 рабочий процесс работает с полномочиями локальной системы (учетная запись LocalSystem).

Службы IIS 6.0 не могут одновременно работать в двух режимах. Если приложения требуют различных режимов изоляции процессов, администратор должен реализовать их на различных серверах.

Зачем добавлять дополнительные пулы приложений в IIS?

У меня есть несколько веб-сайтов, размещенных в IIS 6.0 на Windows Server 2003. Некоторые из них используют инфраструктуру .Net 1.1, а другие используют .Net 2.0. В настоящее время у меня есть пулы приложений для каждой структуры. Существуют ли другие причины добавления дополнительных пулов приложений?

3 ответа

  • AppPools может работать как разные идентификаторы, поэтому вы можете ограничить права доступа таким образом.
  • Вы можете назначить различную идентификацию для каждого пула приложений, чтобы при запуске диспетчера задач вы знали, какой именно w3wp.exe является.
  • Вы можете повторно использовать /перезапустить один пул приложений, не затрагивая сайты, запущенные в разных пулах приложений.
  • Если у вас есть веб-сайт с утечкой памяти или, как правило, неправильная работа, вы можете поместить его в пул приложений, чтобы он не влиял на другие веб-сайты.
  • Если у вас есть сайт с очень интенсивным процессором (например, изменение размера фотографий), вы можете разместить его в своем собственном пуле приложений и отключить его использование ЦП.
  • Если у вас есть несколько веб-сайтов, каждая из которых имеет свою собственную базу данных SQL, вы можете использовать аутентификацию активного каталога вместо хранения имен пользователей /паролей в web.config.

Я создаю пулы приложений IIS и отдельные приложения в этих аспектах:

Безопасность IIS 6.0

Популярность веб серверов, как главных целей для взломщиков и вирусописателей во всем мире создала естественные условия для Microsoft, чтобы сосредоточиться на ее «Trustworthy Computing Initiative». В результате IIS был полностью перепроектирован, с целью быть защищенным по умолчанию и защищенным по своей внутренней архитектуре. В этой статье мы обсудим конфигурацию, заданную по умолчанию, и изменения, включенные в IIS 6.0, чтобы сделать его более безопасной платформой для хостинга критических веб приложений.

Защищенный по умолчанию

В прошлом разработчики, включая Microsoft, снабжали установки по умолчанию своих серверов множеством типовых скриптов, обработчиков файлов и минимальными ограничениями файловой системы, чтобы обеспечить администраторам необходимую гибкость и простоту использования. Однако такой подход имел тенденцию увеличения доступной плоскости нападения и был основой нескольких атак против IIS. В результате IIS 6.0 разработан, чтобы быть более безопасным «из коробки», чем его предшественники. Самое примечательное изменение это то, что IIS 6.0 не устанавливается по умолчанию с Windows Server 2003. Другие изменения включают в себя:

— Заданная по умолчанию инсталляция — только статический HTTP сервер
По умолчанию IIS 6.0 настроен для обслуживания только статических HTML страниц, динамический контент не разрешается. Следующая таблица сравнивает возможности установки по умолчанию IIS 5.0 и IIS 6.0 .

Компонент IIS IIS 5.0 установка по умолчанию IIS 6.0 установка по умолчанию
Static file support включено включено
ASP включено отключено
Server-side includes включено отключено
Internet Data Connector включено отключено
WebDAV включено отключено
Index Server ISAPI включено отключено
Internet Printing ISAPI включено отключено
CGI включено отключено
Microsoft FrontPage® server extensions включено отключено
Password change interface включено отключено
SMTP включено отключено
FTP включено отключено
ASP.NET нет отключено
Background Intelligence Transfer Service нет отключено

— Не устанавливается никаких типовых приложений
IIS 6.0 не содержит никаких типовых скриптов, подобных showcode.asp и codebrws.asp . Первоначально эти программы были разработаны, чтобы позволить программистам быстро просматривать их код подключения к базе данных и осуществлять его отладку. Однако, showcode.asp и codebrws.asp корректно не проверяют ввод, чтобы гарантировать, что запрошенный файл находится в пределах корневой веб директории. Это позволяет взломщику просматривать любые файлы (включая те, которые содержат важные настройки конфигурации) в системе. Обратитесь по следующей ссылке для получения дополнительной информации об этой уязвимости: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS99-013.asp

— Улучшенный контроль прав доступа файловой системы
Анонимные пользователи больше не имеют прав на запись в домашнею директорию веб сервера. Кроме того, FTP пользователи изолированы в их собственных домашних каталогах. Эти ограничения препятствуют пользователю загружать злонамеренные файлы в другие части файловой системы сервера. Такие атаки могут включать «дефейс» веб сайтов, используя загрузку файлов в корневую директорию и удаленное выполнения команд через запуск злонамеренного исполняемого файла, который может быть загружен в каталог /scripts.

— Нет исполняемых виртуальных директорий
Виртуальные директории не имеют прав на исполнение файлов, находящихся в них. Это предотвращает использование многочисленных «directory traversal» уязвимостей и MDAC эксплойтов, которые существовали в прошлом.

— Удален Sub-authentication модуль
IISSUBA.dll был удален из IIS 6.0 . Любые учетные записи, который требовали эти функциональные возможности в предыдущих версиях IIS, требовали «доступ к этому компьютеру из сети» привилегий. Удаления этой DLL удаляет эту зависимость и таким образом уменьшает плоскость нападения, проводя все идентификации непосредственно через SAM или Active Directory.

— Абсолютные пути отключены
Доступ к абсолютным путям в файловой системе заблокирован по умолчанию. Это должно предотвратить «directory traversal» атаки, которые могут позволить атакующему выходить за пределы корневой веб директории и получить доступ к важным файлам файловой системы, например SAM файлам. Обратите внимание, что это может причинить проблемы при переносе приложений, которые использовали абсолютные пути на предыдущих версиях IIS.

Защищенный по внутренней архитектуре

Фундаментальные изменения проектирования, включенные в IIS 6.0, включают улучшенную проверку правильности данных, усовершенствованное протоколирование, защиту от сбоя, изоляцию приложений и приверженность принципу минимальных привилегий.

Улучшенная проверка правильности данных

Главная новая особенность, включенная в IIS 6.0 это HTTP драйвер режима ядра, HTTP.sys . Он добавлен не только для увеличения производительность и универсальности веб сервера, но и для значительного усиления безопасности. HTTP.sys действует как шлюз для пользовательских запросов на веб сервер. Вначале он анализирует запрос, затем отправляет его соответствующим процессам пользовательского уровня. Ограничение рабочих процессов в режиме пользователя препятствует им обращаться к привилегированным ресурсам в ядре системы. Таким образом, возможности атакующего, намеревающегося получить доступ к серверу, очень ограничены.

Драйвер режима ядра имеет несколько механизмов защиты для увеличения защищенности внутренней архитектуры IIS 6.0. Эти особенности включают в себя защиту от потенциального переполнения буфера, улучшенные механизмы ведения логов в помощь средству реагирования на инциденты и расширенный синтаксический анализ URL для проверки правильности пользовательских запросов.

Чтобы препятствовать использованию переполнения буфера или кучи, которые могут быть обнаружены в будущем, Microsoft использовала принцип «глубокой защиты» во внутренней архитектуре IIS 6.0. Это было достигнуто добавлением определенных возможностей синтаксического анализа URL к набору возможностей включенных в HTTP.sys. Эти особенности в будущем могут настраиваться изменением определенных значений системного реестра. Следующая таблица проводит обзор наиболее важных ключей реестра (могут быть найдены здесь: HKLM\System\CurrentControlSet\Services\HTTP\Parameters).

AllowRestrictedChars Этот ключ принимает значение типа boolean, которое не равное нулю позволяет HTTP.sys принимать hex-коды символов в запросе URL. Значение по умолчанию — 0. Это рекомендованное значение, облегчающее задачу проверки правильности входящих данных на уровне сервера. Если ключ равен 1, злонамеренные символы могут быть закодированы в шестнадцатеричной системе счисления, в попытке обойти проверку правильности ввода.
MaxFieldLength Этот ключ позволяет администратору установить максимальный размер (в байтах) для каждого заголовка. Значение по умолчанию — 16 Кб.
MaxRequestBytes Этот ключ устанавливает максимальное значение строки запроса и заголовков. Значение по умолчанию также 16 Кб.
UrlSegmentMaxCount Этот ключ определяет максимальное количество сегментов пути URL, принимаемых сервером. Фактически это ограничивает число слешей, которые могут быть включены пользователем в запросе URL. Рекомендуется устанавливать это значение на основе глубины корневой директории веб. Значение по умолчанию — 255.
UrlSegmentMaxLength Этот ключ устанавливает максимальное количество символов в любом сегменте пути URL. Значение по умолчанию — 260.
EnableNonUTF8 Значение этого ключа определяет допустимый набор символов. Заданное по умолчание значение 1 позволяет HTTP.sys принимать ANSI- и DBCS-закодированные URL в дополнение к URL закодированным в формате UTF8.

Расширенные механизмы протоколирования

Всестороннее протоколирование — основное требование для успешного обнаружения и реагирования на инциденты безопасности. Microsoft осознала эту необходимость и осуществила исчерпывающий и надежный механизм протоколирования в HTTP.sys . HTTP.sys пишет в log-файл перед диспетчеризацией запроса к рабочему процессу. Это гарантирует, что причина ошибки будет зарегистрирована, даже если это заставит рабочий процесс завершить работу некорректно. Начало log-файла состоит из даты и времени возникновения ошибки, обратного и целевого IP адресов и портов, версии протокола, HTTP запроса, URL, состояния протокола, идентификатора сайта и комментария об ошибке. Комментарий содержит детальную информацию о причине возникновения ошибки — может ли это быть по причине тайм-аута или из-за разрыва соединения вследствие неожиданного завершения рабочего процесса.

Илон Маск рекомендует:  font-size в CSS

В дополнения к настройкам в системном реестре, администраторы IIS 6.0 могут настроить сервер на автоматическое завершение или перезапуск рабочих процессов, приложения которых неоднократно завершались с ошибкой (в течение определенного времени). Это дополнительная гарантия защиты приложения от повторяющихся ошибок, которые быть индикаторами атак. Эта возможность названа «Защита от быстрого сбоя» (Rapid-Fail Protection).

Защита от быстрого сбоя может быть настроена через IIS Manager следующим образом:

1. В IIS Manager разверните локальный компьютер.
2. Выберите Application Pools.
3. Щелкните правой кнопкой мыши на приложении.
4. Нажмите на Properties.
5. В Health поставьте галочку на Enable rapid-fail protection.
6. В поле Failures напишите допустимое количество ошибок (перед завершением процесса).
7. В поле Time Period определите количество минут, в течение которых ошибки будут накапливаться.

В предыдущих версиях IIS (5.0 и более ранние) невозможно было изолировать друг от друга веб приложения. Таким образом часто ошибка одного приложения имела каскадный эффект для других веб приложений на сервере. Однако расширение возможностей и внутренней архитектуры IIS 6.0 позволило изолировать веб приложения в отдельные модули, названные пулами приложений. Каждый пул приложения обслуживает один или более независимых рабочих процессов. Это позволяет локализовать ошибку, предотвращая сбой одного процесса от воздействия на другие. Таким образом, это повышает надежность сервера а, следовательно, и приложений, которые на нем находятся.

Принцип минимальных привилегий

IIS 6.0 придерживается фундаментального принципа защиты — принципа минимальных привилегий. Это было достигнуто путем включения всего кода, который должен выполняться с правами Local System (наивысший уровень), в HTTP.sys . Все рабочие процессы выполняются как Network Service (Сетевая служба), новый тип учетной записи в Windows 2003 с чрезвычайно ограниченными правами. Далее, IIS 6.0 позволяет использовать средства командной строки только администраторам, таким образом предотвращая использование этих средств злонамеренными эксплойтами. Такие изменение внутренней архитектуры уменьшают вероятность компрометирования сервера через потенциальную уязвимость. Кроме этих фундаментальных изменений в архитектуре, некоторые простые изменения конфигурации включают запрещение прав на запись в домашние директории веб сервера для анонимных пользователей, изоляцию FTP пользователей в их собственный домашние директории, что также увеличивает защищенность IIS 6.0 .

IIS 6.0 — шаг Microsoft в правильном направлении, помогающий организациям повысить свою безопасность. Он обеспечивает надежную и защищенную инфраструктуру для хостинга веб приложений. Улучшенная зашита в конфигурации по умолчанию — очевидный акцент к защите в процессе разработки и расширение возможностей мониторинга и протоколирования сервера IIS 6.0 . Однако, администраторы не должны получить ложное ощущение защищенности, просто перейдя на эту платформу, а объединить переход на новую платформу с созданием многократных уровней защиты. Это соответствовало бы принципу «глубокой защиты» и создало бы надежный щит от угроз подобных Code Red или Nimda.

Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Что такое пул приложений IIS?

Что такое пул приложений? Какова его цель?

14 ответов

пулы приложений позволяют изолировать приложения друг от друга, даже если они запущены на одном сервере. Таким образом, если в одном приложении есть ошибка, она не будет снимать другие приложения.

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

в принципе, пул приложений-это способ создания отсеков на веб-сервере через границы процессов и маршрутизации наборов URL-адресов для каждого из этих отсеков. Смотри здесь подробнее: http://technet.microsoft.com/en-us/library/cc735247(РВ.10).аспн

Я второй топ проголосовал ответ, но чувствую, как добавить немного больше деталей здесь, Если кто-то находит это полезным.

короткая версия :

IIS запускает любой веб-сайт, настроенный в процессе с именем w3wp.исполняемый. сервер IIS Пул приложений в IIS, который позволяет каждому сайту или части его запустить под соответствующим w3wp.процесс exe. Так что можешь бежать. 100 веб-сайтов все в одном w3wp.exe или 100 различных w3wp.исполняемый. Например. прогон 3 сайтов в одном пул приложений (тот же w3wp.exe) для экономии памяти использование. , запустите 2 разных веб-сайта в двух разных пулах приложений, поэтому что каждый может работать под отдельной учетной записью пользователя(называемой пулом приложений идентичность.) запуск веб-сайта в одном пуле приложений и дочернем узле «веб-сайт / приложение» в другом пуле приложений.

больше вариант:

каждый веб-сайт или часть веб-сайта можно запустить в пуле приложений.Вы можете управлять некоторыми базовыми настройками веб-сайта с использованием пула приложений.

  1. вы хотели бы, чтобы веб-сайт работал под другим w3wp.процесс exe.Затем создайте новый пул приложений и назначьте его веб-сайту.
  2. вы хотели бы запустить веб-сайт и все это код под другой учетной записью пользователя(e.g под правами администратора), вы можете запустить это, изменив Идентификатор Пула Приложений.
  3. вы хотите запустить определенное приложение в .net framework 4.0 или 2.0.
  4. вы хотели бы убедиться, что веб-сайт в 32-битном режиме или имеет запланированную переработку w3wp.процесс exe etc.Все такие вещи управляются из пула приложений iis.

надеюсь, что это помогает!

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

каждое приложение в пуле приложений использует один и тот же рабочий процесс.

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

IIS — Internet information Service-это веб-сервер, используемый для размещения одного или нескольких веб-приложений . Давайте возьмем любой пример здесь, скажем, Microsoft поддерживает веб-сервер, и мы запускаем наш веб-сайт abc.com (содержание новостей на основе) на этом IIS. Поскольку Microsoft является крупной компанией, она может занять или также готова разместить другой веб-сайт xyz.com (на основе электронной коммерции).

теперь веб-сервер хостинга i.e предоставление памяти для запуска обоих веб-сайтов на одном веб-сервере.Таким образом , применение на экране появляются бассейны . abc.com имеет свои правила, бизнес-логику, данные и т. д. И то же самое относится к xyz.com.

IIS предоставляет два пула приложений (путь) для запуска двух веб-сайтов в своем собственном мире (данные) плавно на одном веб-сервере, не затрагивая каждый из них (безопасность, масштабируемость).Это пул приложений в IIS.

Так что вы можете иметь любое количество пула приложений в зависимости от мощности сервера

пул приложений-это группа URL-адресов, обслуживаемых рабочими процессорами или набором рабочих процессоров.

может существовать любое количество пулов приложений.

в IIS можно создать несколько пулов приложений.

приложение в другом пуле приложений работает в разных рабочих процессорах.

Advantage: если ошибка произошла в одном пуле приложений не повлияет на приложения, запущенные в другом приложении бассейн.

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

пулы приложений используются для разделения набора рабочих процессов IIS с одинаковой конфигурацией. Пулы приложений позволяют изолировать наше веб-приложение для повышения безопасности, надежности и доступности

пулы приложений используются для разделения наборов рабочих процессов IIS с одинаковыми границами конфигурации и приложений.

пулы приложений, используемые для изоляции нашего веб-приложения для повышения безопасности, надежности, доступности и производительности и продолжают работать, не влияя друг на друга . Рабочий процесс служит границей процесса, которая разделяет каждый пул приложений, так что, когда один рабочий процесс или приложение имеет проблему или повторяет приложения или рабочие процессы не влияет. Один пул приложений также может иметь несколько рабочих процессов.

или мы можем просто сказать, что пул приложений-это группа, состоящая из одного или нескольких URL-адресов, обслуживаемых рабочим процессом или набором рабочих процессов. Любой веб-каталог или виртуальный каталог можно назначить пулу приложений. Так что один веб-сайт не может быть затронут другим, если u использовал отдельный пул приложений.

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

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

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

границы процессов разделяют каждый рабочий процесс; поэтому проблемы приложений в одном пуле приложений не влияют на веб-сайты или приложения в других пулах приложений. Пулы приложений значительно повышают надежность и управляемость веб-инфраструктуры.

пул приложений-это группа, состоящая из одного или нескольких URL-адресов, обслуживаемых рабочим процессом или набором рабочих процессов. Пулы приложений используются для разделения наборов рабочих процессов IIS, имеющих общую конфигурацию и границы приложений.

пул приложений похож на фунт, если я создаю пул приложений 2, в первом пуле приложений 100 рыб и в другом пуле приложений есть 200 рыб здесь рыба похожа на приложение в пуле приложений . они управляются рабочими процессами . лучшее преимущество : если количество-1 фунт плохая вода и дел, все рыбы производятся, то есть охрана рыб в количестве-2 фунта .как это, если любой пул приложений осуществляется любой проблемой, но нет никакого эффекта от этой проблемы в пул приложений 2 так что безопасность в improve, и еще одна выгода в том, что вы предоставляете всю необходимую аутентификацию и права на все приложения в одном пуле приложений

C# Разработка

Блог о создании приложений на платформе .NET Framework

13 июля 2020 г.

Автозапуск и инициализация пула приложений на версий IIS 7.5, 8.0, 8.5 и 10.

Версия IIS Операционные системы
1.0 Windows NT 3.51
2.0 Windows NT 4.0
3.0 Пакет обновления 3 для Windows NT 4.0
4.0 Пакет Option Pack для Windows NT 4.0
5.0 Windows 2000
5.1 Windows XP Professional
6.0 Windows Server 2003
7.0 Windows Vista; Windows Server 2008
7.5 Windows 7; Windows Server 2008 R2
8.0 Windows 8; Windows Server 2012
8.5 Windows 8.1; Windows Server 2012 R2
10 Windows 10; Windows Server 2020

1. Открываем Configuration Editor выделив сверху свой сервер.

2. В Section выбираем system.applicationHost/applicationPools.

3. Выделяем строку (Collection), далее справа появится кнопка с троеточием. Нажимаем на неё.

4. В появившемся окне СНАЧАЛА выбираем ваш Application Pool сверху, затем снизу выбираем startMode -> AlwaysRunning. Закрываем окно Collection Editor.

5. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

1. В разделе Section выбираем system.applicationHost/sites.

2. Выделяем строку (Collection) далее справа нажимаем на кнопку с троеточием.

3. Первым делом надо выбрать сверху ваш сайт, затем в свойствах найти applicationDefaults, раскрыть его и в свойстве preloadEnabled выставить True.

4. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

Базовые сведения об IIS

Архитектура IIS 6

Если вы работали с предыдущими версиями IIS , то заметите в версии IIS 6 значительные усовершенствования. Версия 6 намного более стабильна и безопасна в работе. При ознакомлении с данной информацией имейте в виду, что она относится к компоненту веб-сервера IIS . В шестой версии IIS службы FTP , SMTP и NNTP по -прежнему выполняются в процессе inetinfo.exe .

В предыдущих версиях IIS (см. рис. 1.6) все компоненты выполнялись в процессе inetinfo.exe или вне процесса в dllhost.exe . Сайт с ошибкой, выполняющийся в inetinfo.exe , мог вызвать сбой веб-службы со всеми вытекающими последствиями.

IIS 6 отделяет код веб-сервера от кода поддержки приложений при помощи HTTP-слушателя режима ядра http.sys и службы веб-администрирования (WAS), являющейся диспетчером процесса и конфигурации пользовательского режима (см. рис. 1.7). Эти программы не выполняют никакого стороннего кода, поэтому ошибка веб-сайта не оказывает на них никакого воздействия. Код выполняется в рабочем процессе. Рабочие процессы выполняются с помощью приложения w3wp.exe . Каждая копия w3wp.exe представляет собой отдельный рабочий процесс . Рабочие процессы существуют отдельно друг от друга и от ядра, поэтому их можно изолировать от операционной системы.

Совет. Выражение «в процессе» означает код, выполняемый в том же процессе, что и родительский. «Вне процесса» означает код, выполняемый в отдельном процессе.

Режим изоляции рабочего процесса

Веб-служба IIS 6 выполняет весь прикладной код в изолированной среде. Такой подход называется режимом изоляции рабочего процесса. Он уже был реализован в IIS ранее, однако его использование приводило к значительному спаду производительности. Однако в IIS 6 все выполняется вне процесса, поэтому никакого снижения производительности не происходит. Предыдущие версии IIS использовали процессы режима пользователя для маршрутизации запросов, направленных друг к другу. В IIS 6 запросы вызываются непосредственно из ядра, с полной изоляцией рабочих процессов друг от друга. Это помогает в том случае, если два приложения нужно отделить по причинам безопасности. В настоящий момент такие службы IIS, как FTP и SMTP, все еще выполняются в inetinfo , как и в IIS 5. Возможно, в следующей версии рабочие процессы будет изолированы и для этих служб, однако пока что они могут воздействовать на процесс inetinfo .

Режим изоляции IIS 5.0

Иногда изоляция рабочих процессов вызывает проблемы с приложениями, которым требуется доступ к данным между вхождениями или выполнение в среде пула приложений IIS 5. В данном случае IIS использует функцию режима изоляции IIS 5. Этот режим функционирует так же, как и в IIS 5, что позволяет приложениям выполняться в пуле приложений IIS 5 с сохранением возможности режима ядра http.sys ставить в очередь и обрабатывать запросы.

Большая часть сайтов прекрасно функционирует под IIS 6, однако в некоторых случаях необходимо использовать режим изоляции и пресекать рециркуляцию рабочих процессов.

  • Интерфейсы ISAPI с несколькими вхождениями, созданные для совместного многократного использования различными процессами.
  • Чтение фильтров необработанных данных, которые могут перехватывать данные прежде, чем они достигнут веб-сайта.
  • Внутрипроцессовые сеансовые переменные состояния , так как они удаляются при каждой рециркуляции рабочего процесса.
  • Приложения, передающие выполнение задач своим собственным рабочим процессам.

Включение режима изоляции IIS 5.0. Включение режима изоляции производится на корневом уровне папки Web Sites (Веб-узлы) в IIS MMC. Это действие осуществляется для всех веб-сайтов на cервере в целом; нельзя включать этот режим для отдельных веб-сайтов. Для включения режима изоляции выполните следующие действия.

  1. Откройте окно IIS MMC.
  2. Щелкните правой кнопкой мыши на папке Web Sites (Веб-узлы) и выберите Properties (Свойства).
  3. Откройте вкладку Service (Служба). Обратите внимание на то, что вкладка доступна только на этом уровне.
  4. Отметьте поле Run WWW Service In IIS 5.0 Isolation Mode (Выполнять службу WWW в режиме изоляции IIS 5.0).
  5. Нажмите на кнопку OK для возврата в IIS MMC.
Илон Маск рекомендует:  Что такое код swfdisplayitem >skewxto

Пулы приложений

IIS вводит принципиально новый способ поддержки приложений. Пулы приложений позволяют выполнять код в изолированной среде. Каждый пул приложения обслуживается одним или несколькими рабочими процессами. При запуске IIS служба веб-администрирования (Web Administration Service) инициализирует таблицу маршрутизации пространства имен http.sys с одной записью для каждого приложения. Эта таблица определяет, к какому пулу приложений должно быть маршрутизировано приложение. При получении запроса http.sys дает WAS команду на запуск одного или нескольких рабочих процессов для поддержки этого пула приложения. Такая изоляция процессов в целом повышает стабильность веб-сервера.

Мониторинг состояния

WAS имеет возможность контролировать состояние («здоровье») IIS посредством отслеживания рабочих процессов и мониторинга степени их исправности. Это позволяет предотвратить отказы IIS. WAS отслеживает рабочие процессы посредством отправки пинг-запросов через установленные промежутки времени. Если рабочий процесс не отвечает на пинг-запрос, WAS завершает процесс и запускает новый, что сохраняет возможность системы отвечать на системные запросы даже в случае «зависания» рабочего процесса. При возникновении сбоя в рабочем процессе и его «зависании» http.sys будет выдавать последовательные запросы до тех пор, пока WAS не запустит новый рабочий процесс для поддержки этого пула приложения. Конечный пользователь столкнется с временной потерей обслуживания приложениями в данном пуле приложений, в то время как ключевые веб-службы и другие приложения продолжат свою работу.

Блокирование рабочих процессов

WAS можно настроить на блокирование рабочего процесса вместо его уничтожения, что позволяет выполнить проверку неисправного рабочего процесса.

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

Перезапуск рабочих процессов производится по следующим критериям:

  • затраченное время;
  • количество запросов;
  • время дня;
  • использование памяти;
  • время простоя;
  • использованное процессорное время.

Масштабируемость

Режим изоляции рабочих процессов позволяет улучшить масштабируемость веб-сервера. На сервере с такой конфигурацией могут существовать тысячи веб-сайтов. Каждый пул приложений контролируется в индивидуальном порядке с ограничением процессорного времени для отдельных пулов.

Веб-наборы

Для поддержки одного пула приложений можно установить несколько рабочих процессов. Такие структуры называются веб-наборами. Веб-наборы улучшают мультипроцессорную масштабируемость, так как каждый рабочий процесс становится родственным отдельному процессору для увеличения количества обращений в кэш этого процессора. При возникновении перегрузки рабочего процесса его поддерживают другие рабочие процессы. Этот подход снижает необходимость перезагрузки сервера даже при обновлении компонентов, так как просто перезапускается пул приложения.

Количество запросов в очереди для каждого пула приложения указывается в http.sys при выполнении рабочего процесса в режиме изоляции. По достижении этого лимита новые запросы к пулу приложения не обрабатываются, и пользователь получает сообщение об ошибке HTTP 503.

Примечание. Подробная информация о пулах приложений и опциях приведена в «Служба WWW» .

Рекомендации по защите: Web-серверы. Windows

Общая информация об угрозе

Рекомендации по защите

3. Изолирование ролей сервисов.
В идеале, один сервер — одна функция. То есть сервер должен выполнять какую-то конкретную функцию: контроллер домена, файловый сервер или другие. Конечно, на практике такого сложно добиться, но можно выполнить эту рекомендацию, например, с помощью виртуальных машин, развернутых для выполнения отдельных ролей.

4. Отключение SSL2.0 и SSL3.0.
Данные версии протокола считаются криптографически небезопасными. Используйте протокол TLS не ниже версии 1.2.

5. Использование HTTP версии не ниже 1.1.
Все новые версии популярных web-серверов и браузеров уже поддерживают HTTP/2. Новая спецификация быстрее и производительнее существующего HTTP 1.1 и давно устаревшего HTTP версии 1.0.

6. HttpOnly и Secure cookie.
Похищение cookie из приложения может привести к захвату авторизованного сеанса пользователя. Кражу cookie можно осуществить с помощью атаки типа XSS. Атрибут HttpOnly позволяет снизить эту угрозу, ограничивая доступ к cookie из JavaScript.

7. Настройка доступных Internet Media Types (MIME).
Это проверка содержимого файлов, которая может защитить вас от все тех же атак типа XSS. С помощью MIME можно выбрать типы файлов, которые могут храниться и быть обработанными на сервере. Все остальные файлы, в том числе и те, которые попытается загрузить злоумышленник, не будут загружены, и система выдаст ошибку.

9. Использование IP Address and Domain Restrictions.
Составьте с помощью Domain Restrictions белые списки IP-адресов для ограничения доступа к сайту. Например, для того чтобы открыть доступ к панели администратора только с определенного IP-адреса.

10. Настройка Request Filtering.
Добавьте фильтрацию по заголовку, методам, URL, расширению, чтобы оградить себя от возможных методов DoS атак. А фильтрация query-параметров поможет защититься от попытки получить доступ к конфигурационному файлу web.config или файлу с паролями.

11. Dynamic IP Address Restrictions.
Используя эту особенность, ограничьте частоту запросов, чтобы IIS на аномально огромное количество запросов с одного IP-адреса выдавал ошибку как результат. Будьте осторожны, при неправильной настройке можно заблокировать доступ со стороны серверов CDN.

12. Настройка страниц ошибок.
К каждому типу ошибок, которые могут возникнуть при работе с сайтом, необходимо создать и привязать
страницу-заглушку для того, чтобы скрыть конфиденциальную информацию. В IIS есть возможность выдачи различных страниц с ошибками для конечных пользователей и администраторов.

13. Защита от Clickjacking атак.
Для этого во вкладке «Соединения» в списке функций найдите «заголовки HTTP-ответов» и добавьте новый подпункт под названием «X-Frame-Options» со значением «SAMEORIGIN».

14. Проверка конфигурационного файла.
В модуле «Configuration» расположен элемент «Credentials», который позволяет указывать дополнительные логины и пароли для учетных записей. Рекомендуется не хранить пароли в файле конфигурации, даже в виде хеша. Аутентификационные учетные данные всегда должны храниться в защищенных местах, чтобы уменьшить риск их кражи.

15. Изоляция web-контента от системных файлов.
Создайте отдельный раздел на жестком диске для хранения файлов web-контента. Это позволит снизить нагрузку на дисковое пространство, в котором хранятся системные файлы и уменьшить риск нарушения их конфиденциальности и целостности.

17. Отключение возможности просмотра каталогов.
Просмотр каталога позволяет отображать содержимое каталога по запросу от
web-клиента. Если просмотр каталогов включен для каталога в Internet Information Services, пользователи получают страницу, в которой перечисленo содержимое каталога.

18. Отключение метода «Trace».
На действующем web-сайте трассировка должна быть отключена, поскольку она может отображать конфиденциальную информацию всем, кто просматривает страницы на сайте. При необходимости атрибуту localOnly может быть присвоено значение true, чтобы информация о трассировке отображалась только для запросов с локального хоста.

19. Выбор правильных алгоритмов шифрования и хэширования.
Элемент «machineKey» в конфигурационном файле web.config задает алгоритм и ключи, которые ASP.NET будет использовать для шифрования и хеширования служб приложений. Настройте его на использование алгоритмом шифрования AES и хеширования SHA1.

20. Проверка режима отладки (debug).
По умолчанию режим отладки отключен, но он очень удобен для разработки при исправлении неполадок. Этот режим компилирует приложения с выводом дополнительной информации, которая позволяет внимательно отслеживать и контролировать выполнение кода. Часто, уже после устранения проблем с кодом, его забывают отключать.

21. Логирование и аудит.
Настройте ведение подробных логов, хотя бы по работе критически важных сегментов вашей инфраструктуры и регулярно инспектируйте их.

Отладка приложения ASP.NET, размещенного на IIS: прикрепление процесса и выяснение, какой процесс прикрепить

Written on 03 Июля 2013 . Posted in ASP.NET

ОГЛАВЛЕНИЕ

Данная статья описывает способ отладки приложения, размещенного на IIS. Здесь также описан способ выбора конкретного процесса для прикрепления к вашему приложению, когда выполняются несколько рабочих процессов

Оглавление

  • Обзор
  • Отладка ASP . NET по сравнению с отладкой IIS
  • Что такое рабочий процесс?
  • Пул приложений
    • Что такое пул приложений?
    • Стандартный пул приложений
    • Создание собственного пула приложений
    • Назначение сайта пулу приложений
  • Как начать?
  • Какой процесс прикрепить?
  • Как прикрепить конкретный рабочий процесс, когда выполняется несколько процессов.
    • Получение списка выполняющихся рабочих процессов
    • Прикрепление нужного процесса
  • Вывод

Обзор

Обычно веб-приложение Asp.Net отлаживается из Visual Studio. Visual Studio имеет собственный механизм ASP.Net, способный запускать и отлаживать веб-сайты внутри visual studio. Но если ваш сайт размещен на IIS, и вы хотите отладить этот сайт, как вы будете его отлаживать? При размещении сайтов на IIS worker process(w3wp.exe) используется для запуска веб-приложения. Надо прикрепить конкретный процесс в Visual Studio, чтобы отлаживать приложение. Данная статья описывает общую идею отладки приложения с помощью прикрепленного процесса. Она также рассматривает рабочий процесс, пул приложений и выбор конкретного процесса, если на IIS выполняется несколько рабочих процессов, с помощью iisapp.vbs. Надеемся, вам понравится эта статья, и вы дадите ценные советы и отзывы.

Отладка ASP.NET по сравнению с отладкой IIS

Visual studio имеет встроенный механизм отладки, отлаживающий код при запуске приложения из Visual Studio. Если при разработке сайтов надо отладить код, ставятся точки останова и производится отладка. [Примечание: В этой статье не описан способ установки режима отладки]. При запуске приложения выполнение кода останавливается, когда приходит определенная точка останова. Это очень просто, поскольку, когда приложение ASP.NET запускается из Visual studio, его контролирует механизм Asp.Net, встроенный в Visual Studio. Если вы хотите проверить, какой процесс запускается для отладки, запустите веб-приложение из Visual Studio и получите такое всплывающее уведомление, как ниже:

Рисунок. Отображение всплывающего уведомления при запуске отладки из Visual Studio

Уведомление показывает, что процесс запускается для выполнения приложения ASP.NET. Дважды щелкните по иконке. Появится всплывающее окно и покажет характеристики.

Рисунок. Характеристики процесса сервера разработки

За выполняющимся процессом находится «WebDev.WebServer.Exe». При нажатии F5 для запуска этот процесс начинает выполнять приложение Asp.Net. Если вы хотите запустить приложение из командной строки, выполните следующие шаги.

Шаги:
1. Открыть командную строку Visual Studio
2. Запустить Webdev.WebServer

Появится следующий экран. Смотрите раздел примеров.

Теперь вернемся к отладке в IIS. IIS появляется при развертывании или размещении сайта на сервере. После развертывания сайтов на IIS, если надо отлаживать сайт из него, нельзя делать это непосредственно в Visual studio. IIS имеет свой собственный рабочий процесс, следящий за выполнением и поддержкой развернутого веб-приложения. Характеристики рабочего процесса описаны в следующем разделе. Поэтому, если мы имеем выполняющийся процесс на IIS, и нам надо отладить приложение, прежде всего надо прикрепить правильный процесс в Visual Studio. Перед разбором способа прикрепления процесса рассмотрим рабочий процесс и пул приложений.

Что такое рабочий процесс?

Рабочий процесс (w3wp.exe) запускает приложение ASP.Net в IIS. Вся функциональность ASP.Net выполняется внутри рабочего процесса. Когда на сервер приходит запрос от клиента, рабочий процесс отвечает за генерацию запроса и ответа. Он также хранит данные сессии InProc. При перезапуске рабочего процесса теряется состояние рабочего процесса. Дополнительную информацию сморите в статье Низкоуровневое рассмотрение архитектуры ASP.NET

Пул приложений

Это одна из самых важных вещей, которую вы должны создать для вашего собственного приложения в среде Производства. Пулы приложений служат для выделения групп рабочих процессов IIS, имеющих одинаковую конфигурацию. Пулы приложений позволяют изолировать веб-приложение ради лучшей защиты, надежности и работоспособности. Рабочий процесс служит в качестве границы процессов, отделяющей каждый пул приложений, чтобы сбой или перезапуск одного рабочего процесса или приложения не влиял на другие приложения или рабочие процессы.

Стандартный пул приложений

Имя стандартного приложения IIS 6.0 — «DefaultAppPool». После размещения сайта на IIS при проверке свойств Виртуальной директории вы сможете увидеть, что:
1. Start(пуск) – Run(выполнить) — Inetmgr
2. Развернуть «DefaultWebSites» или Другие веб-сайты, где вы создали Виртуальную директорию
3. Щелкнуть правой кнопкой мыши по Виртуальная директория
4. Щелкнуть по Свойства

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

Чтобы проверить список всех пулов приложений в IIS, разверните Узел пула приложений на сервере IIS.

Рисунок. Стандартный пул приложений

Теперь все до единого пулы приложений должны иметь минимум один рабочий процесс, следящий за работой сайта, связанного с пулом приложений. Щелкните правой кнопкой мыши по пулу приложений – перейдите во вкладку производительности, проверьте нижнюю часть вкладки, там есть раздел сетевого сада, и по умолчанию рабочий процесс равен 1. Пул приложений, содержащий более одного рабочего процесса, называется Web Garden(сетевой сад).

Создание и назначение пула приложений

Откройте консоль IIS, щелкните правой кнопкой мыши по папке пула приложений > Создать New(новый)

Введите Идентификатор пула приложений и нажмите Ok.

Теперь щелкните правой кнопкой мыши по Виртуальной директории и назначьте только что созданное приложение этой Виртуальной директории.

Итак, эти веб-сайты будут запускаться независимо в StateServerAppPool. Следовательно, любая проблема, связанная с другим приложением, не влияет на ваше приложение. Это основные преимущества создания пула приложений отдельно.

Как начать?

Все сказанное до сих пор уже дает вам хорошее представление о рабочем процессе и пуле приложений. Вы должны понять их, прежде чем начинать следующую часть. Теперь покажем способ отладки сайта, размещенного на сервере IIS.

Был создан один веб-сайт под именем sampleWebSite и размещен на локальном IIS. Ниже показан вывод страницы по умолчанию.

Рисунок. Пример веб-сайта

Какой процесс прикрепить?

Как уже было сказано, имя процесса — w3wp.exe, следовательно, можно проверить его из менеджера задач, выполняется рабочий процесс или нет

Рисунок. Менеджер задач показывает выполняющийся процесс

Теперь прикрепим процесс. Перейдите в Отладка > Прикрепиться к процессу

Рисунок. Открыть окно прикрепления процесса

После нажатия на Прикрепиться к процессу появится следующий экран,

Рисунок. Выполняется один рабочий процесс

Теперь видно, что выполняется тот же самый рабочий процесс. Надо прикрепить этот процесс. Выберите «Процесс» и нажмите кнопку «Прикрепить». После проверки двух рисунков ниже

Рисунок: 1) Процесс успешно прикреплен 2) Процесс не прикреплен

Заметили ли вы знак точки останова? Если рабочий процесс прикрепился успешно, знак точки останова выполнения кода должен быть четким, в противном случае он должен иметь предупреждающую иконку. Для одного рабочего процесса сценарий не свойствен. Но если на IIS выполняется несколько рабочих процессов, возникает беспорядок. Это рассмотрено в следующем разделе.

Теперь при нажатии на кнопку отладки веб-страницы выполнение кода остановится в точке останова.

Теперь рассмотрим случай, когда выполняется несколько рабочих процессов

Как прикрепить конкретный рабочий процесс, когда выполняется несколько процессов?

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

Мы имеем 3 пула приложений в IIS:
• Стандартный пул приложений
• Обобщенный пул приложений
• Пул приложений сервера состояний

Илон Маск рекомендует:  Что такое код pdf_setrgbcolor_stroke

Сейчас SampleWebSite связан с defaultAppPool, и мы хотим прикрепить процесс для отладки SampleWebSite. Выполните такой же шаг для открытия окон прикрепления процесса

Рисунок. Список рабочих процессов

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

Рисунок. Процесс не прикрепился правильно

Получение списка выполняющихся рабочих процессов

Ниже даны советы по решению указанной проблемы.
• Пуск > Выполнить > Cmd
• Перейти в Windows > System32
• Выполнить cscript iisapp.vbs и ждать вывода.

Вы получите список выполняющихся рабочих процессов, PID(идентификаторов процессов) и имя пула приложений.

Рисунок. Список выполняющихся рабочих процессов с PID и именем пула приложений

Прикрепление правильного процесса

Отсюда вы можете легко определить имя пула приложений и идентификатор процесса. Снова вернемся в VS > Прикрепить процесс. Теперь вы знаете, что идентификатор процесса для стандартного пула приложений равен 1772, следовательно, Прикрепить процесс.

Рисунок. Прикрепить процесс для отладки

Теперь наслаждайтесь отладкой.

Рисунок. Точка останова готова

Вывод

Иногда приходится отлаживать приложение, размещенное на IIS. Для этого надо прикрепить выполняющийся рабочий процесс к коду Visual Studio. Если на сервере IIS выполняется несколько рабочих процессов, мы можем определить правильный рабочий процесс с помощью команды cscript iisapp.vbs. Надеемся, статья поможет новичкам, испытывающим затруднения с отладкой приложения, размещенного на IIS.

При копировании материалов наличие активной индексируемой ссылки на сайт обязательно.

Internet Information Services 6.0

Microsoft Internet Information Services (Internet Information Services) представляет собой Web-сервер, входящий в состав операционных систем Windows 2000 и Windows XP и ныне широко используемый для создания современных Web-решений. В настоящей статье мы рассмотрим основные особенности Microsoft Internet Information Services версии 6.0 — составной части ожидаемой в этом году операционной системы Windows .NET Server.

Говоря о современном состоянии и тенденциях развития Internet, нельзя не отметить, что в течение последних нескольких лет из распределенного и в целом неупорядоченного хранилища статических ресурсов, таких как Web-страницы, он не только превратился в средство реализации и поддержки самых разных деловых процессов, но и инициировал появление некоторых из них, неизвестных и недоступных ранее. В числе последних стоит выделить разнообразные виды электронной коммерции, реализованной с помощью приложений типа B2C (Business-to-Consumer) — Web-сайтов, ориентированных на полноценное торговое обслуживание клиентов, приложений типа B2B (Business-to-Business), осуществляющих кооперацию между различными предприятиями и интеграцию корпоративных приложений и данных, всевозможные виды внутрикорпоративного документооборота, вертикальные, горизонтальные и корпоративные порталы, аренду приложений у провайдеров подобных услуг.

Приложения, реализующие и поддерживающие бизнес-процессы подобного класса, предъявляют очень высокие требования к масштабируемости, безопасности, надежности, доступности и эффективности работы средств управления Web-серверами. Именно поэтому в последнее время наблюдается стремительное развитие продуктов подобного класса, и Internet Information Services не являются исключением, что подтверждается данными, приведенными в таблице.

Эволюция Internet Information Server и Internet Information Services

Internet Information Services 4.0 Internet Information Services 5.0 Internet Information Services 5.1 Internet Information Services 6.0
Операционная система Windows NT 4.0 Windows 2000 Windows XP Professional Windows .NET Server
Архитектура 32-разрядная 32-разрядная 32-разрядная 32- и 64-разрядная
Модель процессов приложений Ядро TCP/IP и хост-процесс для DLL Ядро TCP/IP и хост-процесс для DLL Ядро TCP/IP и хост-процесс для нескольких DLL Ядро http.sys и рабочие процессы
Метаданные Двоичный формат Двоичный формат Двоичный формат XML
Безопасность Аутентификация Windows Аутентификация Windows, Kerberos, SSL Аутентификация Windows, Kerberos, SSL, мастер конфигурации безопасности (Security Wizard) Аутентификация Windows, Kerberos, SSL, мастер конфигурации безопасности, поддержка Microsoft Passport
Удаленное администри- рование Не поддерживается HTML- администрирование Terminal Services Terminal Services, Web-приложение для удаленного администрирования
Поддержка кластеров Нет Кластеры Internet Information Services Поддержка на уровне ОС Поддержка на уровне ОС

Отметим, что обсуждаемая в данной статье шестая версия Internet Information Services — это первая версия данного Web-сервера, существующая и для 32-разрядной, и для 64-разрядной версии Windows. Ниже мы более подробно расскажем о ее отличительных особенностях и преимуществах использования по сравнению с предыдущей версией.

Администрирование

Как и в предыдущей версии Internet Information Services, большая часть задач администрирования решается в шестой версии с помощью IIS Snap-in (модуля расширения Microsoft Management Console (MMC)). В иерархии объектов Internet Information Services отображаются FTP- и Web-сайты, пулы приложений (при этом предоставляется возможность создания новых сайтов и пулов), а также виртуальный SMTP-сервер. О пулах приложений мы расскажем чуть ниже.

Средства администрирования Internet Information Services 6.0 (MMC Snap-in)

Удаленное администрирование

Поскольку число пользователей Internet за последние годы значительно возросло, Web-серверам требуются средства, позволяющие создавать масштабируемые Web-приложения путем распределения нагрузки по нескольким серверам и создания так называемых Web-ферм, состоящих из нескольких Web-серверов, обслуживающих одну и ту же задачу. Для управления подобными Web-фермами требуются средства удаленного администрирования, и такие средства в Internet Information Services 6.0 существуют. В частности, для удаленной установки Internet Information Services существует как минимум три способа: воспользоваться MMC и Internet Information Services Snap-in, осуществить удаленное администрирование с помощью специально предназначенного для этой цели приложения с Web-интерфейсом или применить Terminal Services.

Администрирование Internet Information Services с помощью Web-интерфейса

Internet Information Services WMI Provider

Windows 2000 предоставила новые средства конфигурации сервера и доступа к сведениям о конфигурации и производительности — Windows Management Instrumentation (WMI). Для использования возможностей WMI в состав Internet Information Services 6.0 включен WMI-провайдер, предоставляющий ряд программных интерфейсов для администрирования Web-сервера с применением WMI и по функциональности схожий с соответствующим ASDI-провайдером.

Сценарии администрирования

В состав Internet Information Services 6.0 входит несколько стандартных сценариев администрирования на языке VBScript, использующих WMI-провайдер и реализующих наиболее часто встречающиеся задачи, такие как создание, удаление, запуск и остановка Web-сайтов и FTP-сайтов, создание и удаление виртуальных каталогов, экспорт и импорт сведений о конфигурации Internet Information Services в XML-файлы, резервное копирование и восстановление метаданных.

Метаданные Internet Information Services 6.0

Средства управления метаданными

Администрирование Web-сайта включает такие действия, как создание виртуальных каталогов, страниц для отображения сообщений об ошибках и их обработки, правил доступа к тем или иным приложениям, каталогам и ресурсам. Сведения о структуре каталогов и правилах безопасности, называемые также метаданными Internet Information Services (Internet Information Services metabase), в прежних версиях этого продукта хранились в двоичном файле. Internet Information Services 6.0 сохраняет метаданные в XML-документах (файлы METABASE.XML со сведениями о конфигурации и MBSCHEMA.XML со значениями по умолчанию). При запуске Internet Information Services 6.0 эти XML-файлы считываются в память, а затем периодически сбрасываются на диск с целью сохранения изменений.

Хранение метаданных в формате XML имеет ряд преимуществ по сравнению с прежним способом. В частности, восстановление поврежденных метаданных теперь существенно упрощено, равно как и их просмотр, а время, необходимое на считывание метаданных в процессе загрузки Internet Information Services, значительно уменьшилось. При этом метаданные совместимы с Active Directory Service Interfaces (ADSI) и доступны с помощью самых разнообразных способов.

Для программного доступа к метаданным применяются Admin Base Objects (ABO) — COM-объекты, предоставляющие интерфейс к данным о конфигурации Internet Information Services, а для сохранения метаданных на диск используется Metabase Storage Layer. Сохранение данных на диск осуществляется при остановке Internet Information Services, при программном вызове соответствующего метода и при наличии определенного количества изменений в метаданных в течение определенного времени (обычно нескольких минут).

Internet Information Services 6.0 сохраняет историю изменений метаданных (metabase history), помещая копии файла metabase.xml в особый каталог (по умолчанию — %windir%\system32\inetsrv\history) и специальным образом нумеруя их версии так, чтобы можно было осуществить возврат метаданных к какому-либо предшествующему состоянию.

Метаданные Internet Information Services 6.0 можно импортировать и экспортировать, что позволяет легко делать клоны сайтов или перемещать их, а также создавать резервные копии метаданных. В первом случае можно экспортировать часть метаданных, в зависимости от решаемой задачи.

Изменения в архитектуре

В отличие от программного обеспечения для персональных компьютеров, которое обычно модифицируется раз в один-два года, содержимое Web-сайтов изменяется гораздо чаще, поэтому цикл его разработки короток, и не всегда при этом возможно осуществить полноценное тестирование приложений. Вот почему часть функциональности, связанной с надежностью, имеет смысл перенести из Web-приложения на управляющий им сервер. Именно это и было сделано в Internet Information Services 6.0 — данный сервер автоматически обнаруживает утечку памяти, ошибки доступа к памяти, другие ошибки времени выполнения приложений, обрабатывает их и продолжает выполнять приложение.

Internet Information Services также может при необходимости останавливать и запускать процессы, продолжая при этом обслуживать клиентские запросы. Для этой цели Internet Information Services 6.0 предоставляет средства изоляции приложений и управления процессами.

Изоляция рабочих процессов

Принципиальная идея, положенная в основу изоляции рабочих процессов Internet Information Services 6.0, сводится к выделению различных Web-приложений в отдельные пулы приложений. Эти пулы содержат набор приложений, разделяющих один или более рабочих процессов; при этом сами пулы изолированы друг от друга так же, как обычные процессы Windows, поэтому приложения из разных пулов не оказывают влияния друг на друга. Пул, содержащий несколько рабочих процессов, обслуживающих клиентские запросы, называется Web garden. Такие пулы удобно применять при наличии нескольких процессоров — при конфигурации этого пула есть возможность указать, какие именно из процессоров данного сервера он может использовать. Это позволяет существенно повысить масштабируемость и доступность приложений — даже стопроцентная загрузка части процессоров обработкой запросов от клиентских приложений одного из пулов никак не повлияет на остальные процессоры и на их способность обрабатывать клиентские запросы, обслуживаемые другими пулами, а наличие нескольких рабочих процессов при нескольких процессорах позволяет обслуживать одновременно намного больше запросов, чем с помощью одного рабочего процесса.

Следует обратить внимание на то, что клиентские запросы могут также приниматься для обработки, если соответствующий рабочий процесс еще не запущен — в этом случае Internet Information Services 6.0 запустит его по требованию клиента. Это позволяет сэкономить значительное количество ресурсов, необходимых для поддержания рабочих процессов.

Отметим, что возможность изоляции процессов весьма принципиальна, если вы пользуетесь услугами провайдеров сервисов приложений или услугами хостинга — если ваш провайдер использует Internet Information Services 6.0, вероятность того, что ваши приложения подвергнутся сбоям из-за некорректного поведения приложений других клиентов этого же провайдера, будет практически нулевой.

Обработка очередей запросов на уровне ядра

Помимо изоляции приложений, Internet Information Services 6.0 поддерживает запросы на уровне ядра. Служба HTTP Internet Information Services 6.0 (http.sys) получает клиентские HTTP-запросы и реализует кэш URI-откликов. Благодаря наличию кэша, HTTP-запросы обрабатываются на уровне ядра операционной системы, что заметно повышает производительность. Для каждого пула приложений создается собственная независимая очередь запросов. При аварийном завершении какого-либо рабочего процесса Internet Information Services создает новую копию процесса, что позволяет ему продолжать обрабатывать запросы пользователей.

Изоляция рабочих процессов

При наличии пулов приложений, изоляции рабочих процессов и обработки запросов на уровне ядра разница между внутрипроцессными и внепроцессными Web-приложениями становится несущественной — в любом пуле возможна поддержка ISAPI-приложений и приложений в виде исполняемых файлов; при этом ISAPI-приложения фактически изолированы от адресного пространства самого Web-сервера.

Взаимодействие между пулом приложений и обработкой очередей запросов на уровне ядра осуществляется с помощью компонента Web Administration Service (WAS). В отличие от Internet Information Services 5.0, где главный процесс Web-сервера не был изолирован от процессов приложений, что иногда приводило к сбоям в функционировании Web-сервера в случае сбоя в Web-приложении, в Internet Information Services 6.0 и Web Administration Service, и служба HTTP http.sys изолированы от Web-приложений и не подвержены влиянию возникающих в них ошибок. Иными словами, в целом подобная архитектура приложений характеризуется существенно большей надежностью.

Безопасность

овые средства безопасности данных Internet Information Services 6.0 включают возможность применения так называемых провайдеров сервисов шифрования независимых производителей (Cryptographic Service Provider, CSP), представляющих собой дополнительные устройства-ускорители, аппаратно реализующие криптографические функции, возможность конфигурации идентификации рабочих процессов с целью предотвращения их доступа к ресурсам операционной системы, а также возможность отключения неизвестных расширений.

С помощью Internet Information Services Security Lockdown Wizard администраторы Web-сайтов могут подключать и отключать те или иные функциональные возможности Web-сервера в соответствии с решаемыми задачами. Например, можно отключить всю возможную функциональность, такую как Active Server Pages или Front Page Server Extensions, кроме отображения статического содержимого, такого как файлы *.htm, *.jpg, *.gif (такова, в частности, конфигурация Internet Information Services 6.0 по умолчанию).

Отметим, что по умолчанию Internet Information Services 6.0 выполняется с минимальными привилегиями (как пользователь с правами NetworkService), что снижает риск его использования в качестве инструмента для вероятных несанкционированных действий.

Internet Information Services 6.0 способен осуществлять изоляцию пользователей FTP-сайтов путем выделения им отдельных каталогов, что позволяет избежать несанкционированного доступа к файлам и документам, содержащимся на FTP-сайтах. Внутри своего корневого каталога пользователь может создавать любую структуру каталогов и размещать любые файлы.

Кроме того, в Internet Information Services 6.0 появилась возможность удаленного управления сертификатами SSL.

Изменения в модели программирования и в обслуживании приложений

В Internet Information Services 6.0 сохранилась поддержка моделей программирования ASP и ISAPI. Помимо возможностей, существовавших в прежней версии, появилось несколько новых, дополнительных возможностей, в том числе:

  • перенаправление запросов к другому URL из ISAPI-приложений;
  • создание специальных приложений-интерсепторов, перехватывающих запросы для их модификации, шифрования данных, перенаправления или отказа в выполнении;
  • объединение нескольких буферов с результатами запросов в общий отклик, направляемый клиенту;
  • поддержка генерации сообщений об ошибке не на уровне ISAPI-приложения, а на уровне сервера;
  • поддержка Unicode в ISAPI-приложениях;
  • доступность служб компонентов (COM+) из ASP-приложений;
  • использование разных версий одних и тех же библиотек или COM-объектов из ASP-приложений;
  • поддержка различных конфигураций объектов COM+ для разных пользователей;
    возможность использования многопоточных апартаментов в ASP-приложениях.

Говоря об обслуживании приложений, отметим следующие особенности:

  • в Internet Information Services 6.0 шаблоны ASP-файлов, являющиеся результатом компиляции, кэшируются не только в памяти, как это было в прежней версии Internet Information Services, но и на жестком диске, что позволяет сэкономить ресурсы, требующиеся для их повторной компиляции;
  • при необходимости кэширования большого объема данных Internet Information Services 6.0 способен поддерживать кэш объемом до 64 Гбайт. Если же конкретному Web-приложению требуется объем виртуальной памяти, превышающий 2 Гбайт, то возможно его масштабирование с помощью вышеописанного создания нескольких рабочих процессов, обслуживающих данное приложение.

Заключение

В настоящей статье мы рассмотрели особенности Internet Information Services 6.0, в частности изменения в архитектуре, моделях программирования, возможностях администрирования, средствах управления безопасностью.

Мы убедились в том, что внесенные изменения серьезно повышают надежность, доступность, масштабируемость и производительность Internet Information Services, и это позволяет сделать их основой для корпоративных решений, к надежности, производительности и безопасности которых предъявляются весьма жесткие требования.

За дополнительной информацией обращайтесь в компанию Interface Ltd.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL