8 iis: Включение IIS и обязательных компонентов IIS в Windows 8/8.1—Руководства по установке (10.3 и 10.3.1)

Содержание

Что нового в IIS 8? / Хабр

С выходом бета-версии Windows 8, сервер Internet Information Services (IIS) 8 стал доступен для публичного тестирования и тестирования в промышленной среде. Многим системным администратором не терпится узнать, какие изменения были внесены и что нового появилось.

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

Полноценное регулирование нагрузки CPU (CPU Throttling)


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

Наконец, в IIS 8 были произведены усовершенствования на уровне ядра для поддержки функции настоящего регулирования нагрузки CPU. И теперь для сайтов, которые достигли порога использования CPU, существует два сценария. Они могут перейти в режимы Throttle или Throttle under load. Если ранее вы использовали WSRM, то сегодня он вам уже не понадобится, так как в IIS 8 вы найдете функционала даже больше, чем в WSRM.

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

 

Рис.1. Настройки регулирования нагрузки в IIS 8

Режим Throttle under load позволит сайту использовать все возможные ресурсы CPU во время обычной работы, но когда сервер находится под нагрузкой использовать регулирование нагрузки рабочего процесса (рисунок 1).

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

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


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

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

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

Поддержка SNI / SSL Host Header


Использование заголовков хостов (host headers) и общих IP-адресов вместе с сертификатами SSL всегда имело затруднения. Теперь IIS 8 предлагает поддержку Server Name Indication (SNI), что позволяет множеству SSL-сайтов использовать один и тот же IP-адрес. SNI – это достаточно новый механизм (ему всего несколько лет), который позволяет заголовкам хоста работать вместе с SSL.

IIS 8 полностью поддерживает технологию SNI для заголовков хостов.

Обратите внимание, что SNI не поддерживается в старых браузерах, например, Internet Explorer 6. Больше информации о поддержке SNI вы можете найти на странице http://en. wikipedia.org/wiki/Server_Name_Indication.

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

Управление SSL (SSL Manageability) – центральное хранилище сертификатов (Central Certificate Store (CCS))


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

В IIS 8 представлен новый функционал — Central Certificate Store (CCS, центральное хранилище сертификатов). Механизм CCS позволяет хранить сертификаты в центральном файловом хранилище вместо того, чтобы размещать их на каждом сервере. Вы можете указать серверам единый сетевой ресурс или использовать репликацию, вроде DFS-R, для синхронизации папков между машинами.

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

Механизм CSS использует функциональность SNI для поддержки сайтов с множеством сертификатов на одном IP-адресе.

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

Если вы используете сертификат для доменов третьего уровня и выше (wildcard), то все что вам надо назвать его в виде _.domain.com.pfx.

Как вы могли догадаться, в IIS 8 поддерживается и механизм Multiple Domain Certificates (Unified Communications Certificate [UCC]). Если вы используете несколько доменных сертификатов с помощью поля сертификата subjectAltName, то вам потребуется всего лишь создать несколько копий файлов pfx, одну для каждого subjectAltName.

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

Хочется рассказать еще о приятном функционале центрального репозитория сертификатов, который позволяет группировать их по дате истечения в разрезе «Сегодня / На этой неделе / На следующей неделе / В следующем месяце / Позднее». Эта функция очень полезна для поиска сертификатов, которые вскоре истекут.

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

Динамическое блокирование по IP (Dynamic IP Restrictions)


Информация об этом функционале уже доступна в сети, однако он еще развивается и будет усовершенствован к релизу.

Ограничения входа для FTP


Да! Новый модуль FTP IP Restrictions будет добавлен в IIS 8! Его работа напоминает концепцию Dynamic IP Restrictions для HTTP. Одна из ключевых разниц заключается в том, что FTP IP Restrictions использует серые списки вместо черных списков. Когда кто-то заблокирован, они блокируются только на некоторый промежуток времени (например, 30 секунд). И это хорошо, потому что этого достаточно для предотвращения или замедления перебора паролей и других атак. Вместе с тем, при ошибочном вводе пароля несколько раз, остается возможность повторить ввод через некоторое время без блокировки.

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

Модуль инициализации приложения


Известный ранее модуль warm-up module, который был исключен на время из сервера, теперь представлен в виде модуля инициализации приложений (Application Initialization Module).

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

Новый модуль предлагает возможность указать для разогрева отдельные страницы на сервере или воспользоваться мощными возможностями URL Rewrite для большей гибкости.

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

Масштабирование конфигурации


Теперь сервер IIS 8 может очень эффективно работать с файлами конфигурации IIS (applicationHost.config) большого размера. В сервере были произведены значительные улучшения для достижения высокой производительности обработки файлов конфигурации. В первую очередь изменения заметят администраторы с большим количеством сайтов на серверной ферме (я подразумеваю тысячи сайтов). Но для процесса масштабирования новые изменения так же будут востребованы при значительном росте масштаба.

Веб-сокеты (Web Sockets)


Очень важно включить в список нововведений и поддержку веб-сокетов. Вы можете получить полное описание поддержки Web Sockets в этой замечательной статье Пола Батума (Paul Batum). Функция веб-сокетов будет требовать Windows 8 на стороне сервера.

Заключение


Все эти изменения очень полезны. Хотя при работе над предыдущими версиями IIS уже была роделана большая работа по обеспечению обработки массивного трафика, изменения в IIS 8 теперь позволяют обрабатывать тысячи (и десятки тысяч) сайтов и их огромные конфигурации на одной серверной ферме. Другие значительные нововведения включают в себя: внедрение механизма ограничений HTTP и FTP logon, регулирование использования CPU, модуль инициализации приложений, возможность значительного масштабирования SSL и эффективную обработку конфигураций большого числа сайтов.

От переводчика


Для полноты картины я хотел бы дополнить статью полезными ссылками, которые более полно раскрывают многие новые функции IIS 8. Особенно обратите внимание на не упомянутый в этой статье функционал поддержки многоядерного масштабирования на NUMA:

  • Installing IIS 8 on Windows Server 8
  • IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5
  • IIS 8.0 ASP.NET Configuration Management
  • IIS 8.0 Application Initialization
  • IIS 8.0 Dynamic IP Address Restrictions
  • IIS 8.0 FTP Logon Attempt Restrictions
  • IIS 8.0 CPU Throttling: Sand-boxing Sites and Applications
  • IIS 8.0 Server Name Indication (SNI): SSL Scalability
  • IIS 8.0 Centralized SSL Certificate Support: SSL Scalability and Manageability
  • IIS 8.0 Multicore Scaling on NUMA Hardware

Еще одна полезная вещь – выпуск бесплатного легкого сервера IIS 8 Express для разработчиков, который вы уже можете скачать и установить. Подробности по ссылке.

3 апреля в Самаре пройдет бесплатная конференция WebProfessionals, на которой будет рассказано про IIS 8 и другие элементы веб-платформы Microsoft. Регистрация уже открыта.

Установка (публикация) 1С Документооборот на веб-сервере IIS

Публикация базы данных на Microsoft Internet Information Server не выполняется в автоматическом режиме и требует дополнительной настройки и конфигурации веб-сервера.

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

Процесс разворачивания базы данных «1С:Документооборот» на веб-сервере IIS можно разделить на четыре этапа: установка веб-сервера, настройка прав доступа, публикация базы данных и настройка приложения IIS.

Ниже мы расскажем о всех этапах разворачивания базы данных 1С на веб-сервере IIS на примере установки системы электронного документооборота «1С:Лдокументооборот».

1. Установка веб-сервера IIS

Если веб-сервер IIS у вас еще не установлен, то предварительно его необходимо установить. Данный сервер входит в поставку специализированных серверных операционных систем Windows Server 2008 и старше, а также операционных систем Windows 8 и 10. При коммерческой эксплуатации веб-сервера от Microsoft рекомендуется сверяться с лицензионными ограничениями Windows.

Если вы используете Windows 8 или Windows 10, то установить веб-сервер IIS можно через «Панель управления», в ней необходимо выбрать пункт «Включение или отключение компонентов Windows» и в открывшемся списке выбрать пункт «Службы IIS». Пример показан на рисунке ниже.

После включения службы IIS можно проверить в браузере работу веб-сервера. Откройте в вашем браузере адрес https://localhost — вы должны увидеть стандартную страницу веб-сервера Microsoft Internet Information Server.

Для серверных операционных систем установка IIS отличается. Ниже мы покажем установку IIS на примере Windows Server 2012R (с англоязычным интерфейсом).

Откройте «Control Panel \ Programs and Features» и выберите «Turn Windows features on or off» — у вас запустится приложение «Sever Manager» (его можно запустить и другим способом).

В «Server Manager» нужно установить новую роль «IIS». В разделе Dashboard выберите «Add roles and features», далее «Role-based or feature-based installation». Нажмите «Next», выберите текущий сервер и далее выберите роль Web Server (IIS), в ней необходимо отметить «Web Server» и «Management Tools».

После завершения установки проверьте работоспособность вашего веб-сервера открыв страницу https://localhost в браузере.

Для работы с базами данных «1С:Предприятие 8.3» необходимо наличие сервисов (компонент) ASP.NET. Для их установки в разделе Dashboard (в приложении Server Manager) снова нажмите «Add roles and features” выберите тип установки и ваш сервер. После их выбора пункт Features должен стать доступным. Выберите пункт NET.Framework 3.5 и NET.Framework 4.5, обязательно отметьте ASP.NET 4.5

После окончания установки сервисов ASP.NET можно будет переходить к развертыванию базы данных «1С:Предприятие 8». Развертывание мы проведем на примере «1С:Документооборот».

2. Настройка прав доступа IIS

Доступ к базе данных «1С:Предприятие 8.3» веб-сервере IIS осуществляет с помощью специального пользователя IUSR. При установке IIS также создается группа IIS _USRS, по умолчанию она пустая. Вы можете включить в неё пользователя IUSR и давать разрешения на файлы и каталоги через группу IIS_USRS. Для редактирования групп и пользователей вы можете запустить оснастку lusrmgr.msc и выбрать раздел «Users and groups».

Для получения возможности обращения веб-сервера к библиотекам платформы «1С:Предприятие» необходимо открыть ему доступ. Дадим группе IIS_USRS права доступа на чтение подкаталога bin из каталога установки платформы «1С:Предприятие 8»

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

Важно. При настройке прав доступа убедитесь, что выданные права распространяются на существующие файлы и подкаталоги каталога. Для этого вы можете нажать кнопку «Advanced» на закладке «Security» в свойствах папки включить флажок «Replace child object permissions», затем нажать кнопку «ОК».

Пример настройки приведен на рисунке выше.

Установка IIS 8 на Windows Server 2012

Редактировать

Твиттер

LinkedIn

Фейсбук

Эл. адрес

  • Статья
  • 2 минуты на чтение

Роберт МакМюррей

Совместимость

Версия Примечания
ИИС 8.0 IIS 8.0 доступен только в Windows Server 2012 и Windows 8.
ИИС 7. 5
ИИС 7.0

Обзор

Диспетчер серверов в Windows Server 2012 является новым, и, соответственно, пользовательский интерфейс также изменился.

Эта пошаговая инструкция не является уникальной для установки IIS. Он предназначен для помощи клиентам IIS в быстрой навигации по новому диспетчеру серверов.

Пошаговые инструкции

Предварительные условия:
  • Установлен Windows Server 2012.
Способы обхода известных ошибок:
  • В настоящее время известных ошибок для этой функции нет.

Установка IIS 8 с параметрами по умолчанию

Чтобы установить IIS 8, выполните следующие действия:

  1. Откройте Диспетчер сервера .
  2. В меню Управление выберите Добавить роли и функции :
  3. Выберите Установка на основе ролей или функций :
  4. Выберите соответствующий сервер (по умолчанию выбран локальный), как показано ниже:
  5. Выберите Веб-сервер (IIS) :
  6. Никаких дополнительных функций для IIS не требуется, поэтому нажмите Next :
  7. Нажмите Далее :
  8. Настройте установку IIS или примите параметры по умолчанию, которые уже были выбраны для вас, а затем нажмите 9. 0076 Следующий :
  9. Нажмите Установить :
  10. По завершении установки IIS мастер отображает состояние установки:
  11. Щелкните Закрыть , чтобы выйти из мастера.

Сводка

Службы IIS 8.0 успешно установлены с помощью диспетчера серверов в Windows Server 2012.

Инициализация приложения IIS 8.0 | Microsoft Learn

  • Статья
  • 16 минут на чтение

Шон Иган

Совместимость

Версия Примечания
ИИС 8.0 Инициализация приложения была встроена в IIS 8.0.
ИИС 7.5 Инициализация приложения была выпущена как дополнительный модуль для IIS 7. 5.
ИИС 7.0 Инициализация приложения не поддерживалась для IIS 7.0.

Проблема

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

Решение

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

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

Примечание.

Известны случаи несовместимости между инициализацией приложений и маршрутизацией запросов приложений (ARR). Не рекомендуется использовать Инициализацию приложения на машинах с установленным ARR.

Пошаговые инструкции

Предварительные условия

Для функции инициализации приложения требуется установленный IIS 8.0. Кроме того, необходимо установить функцию инициализации приложения в подфункции IIS «Разработка приложений».

На следующем снимке экрана пользовательского интерфейса диспетчера сервера Windows Server 2012 показана функция инициализации приложения.

Примечание

В этом пошаговом руководстве также используется приложение ASP.NET 4.5 для демонстрации функции инициализации приложения. Приложение в конце этого документа включает образец приложения и инструкции по настройке приложения на вашем компьютере.

Способы обхода известных ошибок
  • В настоящее время известных ошибок для этой функции нет.

Инициализация глобального приложения

Функцию инициализации приложения можно настроить в двух местах: в файле applicationHost.config на уровне компьютера и в файле web.config на уровне приложения. Конфигурация в файле applicationHost.config содержит «глобальные» параметры инициализации приложения, а файл web.config уровня приложения содержит «локальные» параметры инициализации приложения.

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

Изменения в applicationHost.config

Откройте файл applicationHost.config, расположенный по адресу %WINDIR%\system32\inetsrv\config в Блокноте. (Не забудьте запустить текстовый редактор с параметром «Запуск от имени администратора»!)

Найдите раздел конфигурации , а затем найдите запись пула приложений с именем «.NET v4.5».

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

 
 

Прокрутите еще немного вниз в applicationHost.config до элемента конфигурации . В этом разделе будет запись для примера приложения (инструкции по созданию примера приложения на вашем компьютере см. в Приложении). Приложение называется «appinit» и имеет значение атрибута пути «/appinit». Изменить , добавив выделенный жирным шрифтом атрибут preloadEnabled , как показано во фрагменте конфигурации, а затем сохраните изменения.

 
 

Установка для preloadEnabled значения «true» сообщает IIS 8.0, что он отправляет «поддельный» запрос приложению при запуске связанного пула приложений. Вот почему на предыдущем шаге мы установили пул приложений startMode на «Всегда работает».

В сочетании с тем, что пул приложений всегда работает, а само приложение помечено как всегда получающее поддельный запрос, всякий раз, когда машина перезагружается и/или перезапускается служба World Wide Web, IIS 8.0 гарантирует, что экземпляр пула приложений работает и что приложению «/appinit» всегда отправляется ложный запрос, чтобы запустить приложение.

Изменения в файле web.config приложения

Используя второй экземпляр Блокнота, откройте файл web.config уровня приложения, расположенный в следующем месте. (Не забудьте запустить текстовый редактор с параметром «Запуск от имени администратора»!)

 C:\inetpub\wwwroot\appinit
 

Примечание. Измените букву диска, если ваш веб-сайт по умолчанию установлен на другом физическом диске.

В файле web.config есть несколько разделов конфигурации, которые уже предварительно заполнены, но закомментированы. Раскомментируйте показанный фрагмент конфигурации, который находится внутри раздел конфигурации. Этот фрагмент находится сразу после комментария «Упражнение 1 — Шаг 1» в файле web.config. Затем сохраните изменения.

 <Инициализация приложения
    remapManagedRequestsTo="Startup.htm"
    пропуститьManagedModules="true" >
  

 

Элемент applicationInitialization указывает службам IIS, что для инициализации приложения следует отправить запрос к корневому URL-адресу приложения (в данном примере — «/default. aspx»). Пока IIS ожидает завершения запроса к «/default.aspx», он будет предоставлять «Startup.htm» всем активным клиентам браузера. «Startup.htm» — это «заставка» для приложения.

Запустите приложение

В окне командной строки с повышенными привилегиями перезапустите службу World Wide Web с помощью команды, показанной ниже:

 net stop w3svc & net start w3svc
 

Не забудьте запустить окно командной строки с параметром «Запуск от имени администратора»!

С помощью Internet Explorer перейдите по следующему URL-адресу:

http://localhost/appinit/default.aspx

Браузер возвращает статическую страницу «Startup.htm» с серым фоном в течение первых нескольких секунд, потому что это «заставка», настроенная в web.config. Вы можете продолжить обновление страницы в своем веб-браузере и заметить, что примерно через восемь секунд (симулируется спящим потоком в файле global.asax примера приложения) вы получаете «реальное» содержимое для default. aspx с белым фоном. Это означает, что инициализация приложения завершена.

Настройка перезапуска перекрывающихся процессов

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

Вернитесь к экземпляру Блокнота с applicationHost.config. Измените запись пула приложений для «.NET v4.5», чтобы она выглядела как показанный ниже фрагмент конфигурации:

  0" >
  <переработка logEventOnRecycle="Расписание">
    <периодическиезапросы на перезапуск = "30" />
  

 

Не забудьте сохранить изменения!

Элемент указывает IIS перезапускать рабочий процесс через каждые 30 HTTP-запросов.

Запустите приложение во второй раз

В окне командной строки с повышенными привилегиями перезапустите службу World Wide Web с помощью команды, показанной ниже:

 net stop w3svc & net start w3svc
 

Используя новый экземпляр Internet Explorer, еще раз перейдите по адресу:

http://localhost/appinit/default.aspx

Обратите внимание, что отображается заставка Startup.htm с серым фоном.

Затем откройте диспетчер задач и убедитесь, что Отображается вкладка «Процессы «. Сортируйте список процессов по имени, пока не увидите один запущенный экземпляр w3wp.exe. Этот экземпляр является рабочим процессом, который в настоящее время запускает приложение ASP. NET appinit.

Обновите браузер несколько раз, пока не будет возвращено содержимое реальной страницы default.aspx. Вы знаете, что приложение запускает «настоящую» страницу default.aspx, когда фон меняется на белый. Затем расположите окна на экране так, чтобы вы могли видеть и диспетчер задач, и браузер.

Теперь вернитесь в браузер и обновите страницу не менее 30 раз, это заставит IIS перезапустить пул приложений. Вы можете прекратить обновление страницы, когда увидите, что второй экземпляр w3wp.exe отображается в списке процессов диспетчера задач, как показано ниже:

На снимке экрана показано, что второй экземпляр w3wp.exe запущен из-за ограничения перезапуска процесса. установить ранее.

Вы можете продолжать периодически обновлять окно браузера в течение следующих десяти секунд или около того. Обратите внимание, что файл default.aspx продолжает работать. Когда перезапуск с перекрытием завершается, один экземпляр w3wp.exe исчезает из окна процесса диспетчера задач.

На протяжении всей перекрывающейся повторной обработки вы продолжаете видеть содержимое «настоящего» обслуживаемого файла default.aspx, даже несмотря на то, что инициализация приложения была настроена для приложения и выполнялась URL-адрес инициализации в фоновом режиме в новом экземпляре w3wp. .исполняемый файл.

Перезапись URL-адреса и инициализация приложения

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

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

Примечание. Инструкции по установке URL Rewrite см. в приложении.

Изменения в applicationHost.config

Используя экземпляр Notepad с открытым applicationHost.config, верните пул приложений и элементы приложения, чтобы отключить всю глобальную обработку инициализации приложения. На этом шаге удаляются глобальные параметры, поскольку оставшаяся часть этого пошагового руководства посвящена настроенному поведению инициализации приложения.

Записи applicationHost.config для пула приложений и приложения показаны ниже.

Запись конфигурации пула приложений:

 
 

Запись конфигурации приложения:

 
 

Не забудьте сохранить изменения, когда закончите!

Кроме того, чтобы изменения вступили в силу в IIS, из с повышенными правами , перезапустите службу World Wide Web с помощью команды, показанной ниже:

 net stop w3svc & net start w3svc
 
Изменения в файле web.

config уровня приложения

Используя экземпляр Блокнота, в котором открыт файл web.config уровня приложения, удалите атрибут remapManagedRequestsTo из элемента . Раздел конфигурации теперь должен выглядеть как этот фрагмент конфигурации.

 
  

 

Поскольку элемент больше не определяет URL-адрес для повторного сопоставления запросов, добавьте набор правил перезаписи URL-адресов. Затем добавьте правило перезаписи, которое явно сопоставляет запросы, сделанные с «default.aspx», а также «/» для маршрутизации к «Startup.htm». Два правила необходимы, потому что модуль перезаписи URL-адресов не «знает» о том, как работают документы по умолчанию. Поскольку «/» соответствует «default.aspx» в приложениях ASP. $» />
<условия>





Некоторые замечания по поводу этих правил: во-первых, для атрибута stopProcessing установлено значение «true» для элементов . Это необходимо для добавления универсального правила перезаписи URL-адресов позже, а также для запросов к default.aspx или «/», для которых не требуется выполнение универсального правила.

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

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

Затем вы добавляете универсальное правило перезаписи. При использовании модуля перезаписи URL-адресов в сочетании с инициализацией приложения универсальное правило, которое срабатывает, если не требуется ни одно из предыдущих правил. Добавьте правило, выделенное жирным шрифтом ниже, в раздел перезаписи в качестве универсального правила. В качестве альтернативы вы можете раскомментировать предварительно заполненное универсальное правило в файле web.config, расположенное под комментарием «Упражнение 2 — Шаг 2. Настройка универсального правила» в файле web.config. 9$» />
<условия>





<соответствие URL=".*" />
<условия>


<серверные переменные>





Сохраните изменения, когда закончите!

Новое правило сопоставляется с любым URL-адресом, который достигает его, и сообщает IIS о необходимости продолжить обработку запроса, направленного на входящий URL-адрес. Правило также устанавливает для переменной сервера с именем «SKIP_MANAGED_MODULES» значение «0», что соответствует «ложи». Этот параметр указывает IIS, что он должен обрабатывать перезаписанный запрос от URL Rewrite так же, как если бы запрос обычно поступал по сети.

Запустить приложение

В окне командной строки с повышенными привилегиями перезапустите службу World Wide Web с помощью команды, показанной ниже:

 net stop w3svc & net start w3svc
 

Используя новый экземпляр Internet Explorer, еще раз перейдите по адресу:

http://localhost/appinit/default.aspx

Несмотря на то, что правила перезаписи URL теперь используются для определения логики страницы-заставки, вы по-прежнему видите такое же поведение из первого прохождения. Сначала отображается страница Startup.htm с серым фоном. Если вы периодически обновляете браузер, примерно через восемь секунд фон страницы снова становится белым, указывая на то, что теперь, когда инициализация приложения завершена, обслуживается «настоящая» страница default. aspx.

Сложные правила страницы-заставки

В предыдущих пошаговых руководствах инициализация приложения использовалась как прямое сопоставление URL-адреса «X» с URL-адресом «Y». В этом пошаговом руководстве вы собираетесь реализовать более сложный сценарий инициализации приложения.

В браузере перейдите к обоим следующим URL-адресам:

  • http://localhost/appinit/ImageHandler.ashx?image=Lighthouse
  • http://localhost/appinit/ImageHandler.ashx?image=Тюльпаны

Эти URL являются примерами динамически генерируемого статического контента. Для этого примера приложения код внутри ImageHandler.ashx просматривает ключ строки запроса «image». Если значением этой строки запроса является «Маяк» или «Тюльпаны», обработчик ASP.NET передает соответствующий файл JPG, расположенный в папке App_Data.

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

Изменения в файле web.config уровня приложения

Используя экземпляр Блокнота с открытым файлом web.config уровня приложения, добавьте еще одно правило перезаписи URL-адресов перед окончательным универсальным правилом. Новый фрагмент для добавления показан ниже. В качестве альтернативы вы можете раскомментировать предварительно заполненное правило обработчика изображений в файле web.config, расположенное под комментарием «Упражнение 3 — Шаг 1, сложные правила страницы-заставки» в файле web.config.

 
  
  <условия>
    
    
  
   jpg" appendQueryString="false" />

 

Сохраните изменения, когда закончите.

Как и в случае с правилами перезаписи для default.aspx и «/», это правило имеет атрибут stopProcessing , для которого задано значение «true», чтобы гарантировать, что запросы к ImageHandler.ashx не попадут случайно в окончательную всеобъемлющую перезапись. правило во время инициализации приложения.

Для запросов к «ImageHandler.ashx» правило перезаписи использует группу захвата регулярного выражения для извлечения запрошенного изображения из строки запроса. Определение шаблона соответствия pattern=»image=([A-Za-z]+)&?» указывает IIS извлечь значение переменной строки запроса «image». Затем это значение используется в атрибуте URL-адреса атрибута действия: url=»Images/{C:1}_static.jpg» .

Атрибут url в элементе действия указывает модулю перезаписи URL переписать запросы ImageHandler.ashx, чтобы они вместо этого указывали на файлы в подкаталоге Images приложения. Кроме того, значение строки запроса, полученное регулярным выражением, используется для формирования имени файла, который в конечном итоге будет обслуживаться из подкаталога Images. Например, запрос на ImageHandler.ashx?image=Тюльпаны будут перезаписаны в Images/Tulips_static.jpg .

Если вы перейдете в каталог inetpub\wwwroot\appinit с помощью проводника Windows и заглянете в подкаталог Images, вы увидите два файла: один представляет «статическую» версию Tulips.jpg, а другой представляет «статическую» версию Маяк.jpg. Эти статические изображения действуют как предварительно сгенерированное содержимое, которое можно обслуживать во время инициализации приложения.

Запустить приложение

В окне командной строки с повышенными привилегиями перезапустите службу World Wide Web с помощью команды, показанной ниже:

 net stop w3svc & net start w3svc
 

С помощью Internet Explorer перейдите по адресу:

http://localhost/appinit/ImageHandler. ashx?image=Lighthouse

или

http://localhost/appinit/ImageHandler.ashx?image=Tulips 3

Обратите внимание, что изображения, возвращаемые в любом случае, содержат водяной знак, указывающий, что это «статические» предварительно созданные версии изображений. Водяной знак — это текст в верхней части изображения, говорящий: «Это изображение является статической версией…»

Если вы обновите браузер примерно через 10 секунд, вы увидите, что возвращаемое содержимое изображения изменяется на «реальное» содержимое, обслуживаемое обработчиком ImageHandler.ashx. Водяной знак исчезает, что указывает на то, что содержимое теперь динамически создается обработчиком ASP.NET, так как приложение завершило инициализацию.

[Примечание. Если кажется, что Internet Explorer не обновляется, щелкните значок «сломанный документ» в адресной строке или значок обновления, чтобы заставить Internet Explorer перезагрузить страницу.]

Резюме

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

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

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

Приложение. Настройка примера приложения ASP.NET

Примечание. Следующие шаги предполагают, что на вашем сервере уже установлены как IIS 8.0, так и ASP.NET 4.5, включенные для использования в IIS 8.0.

Распакуйте пример приложения

Пример приложения ASP.NET содержится в следующем ZIP-файле:

Распакуйте файл в папку wwwroot на веб-сервере. Например, если ваш веб-сервер установил «Веб-сайт по умолчанию» на диске C:\, разархивируйте содержимое файла в папку 9.0222 c:\inetpub\wwwroot\appinit .

Создание приложения в IIS 8.0

После распаковки примера appinit в файловую систему необходимо настроить папку как приложение ASP. NET в IIS 8.0. На приведенном ниже снимке экрана показан образец приложения appinit, настроенный как приложение в IIS 8.0. Также обратите внимание, что приложение назначено пулу приложений «.NET v4.5».

Установка модуля перезаписи URL-адресов

В примере приложения используется модуль перезаписи URL-адресов для расширенной интеграции с функцией инициализации приложения. Вам необходимо установить на свой сервер модуль перезаписи URL; его можно загрузить с: https://www.iis.net/downloads/microsoft/url-rewrite.

Настройка модуля перезаписи URL-адресов

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

Откройте общемашинный файл applicationHost.config в текстовом редакторе, например в блокноте. Например, если вы установили операционную систему на диск C:\, файл applicationHost.