Настройка веб-сервера для публикации веб-развертывания (обработчик веб-развертывания)
В этом разделе описывается настройка веб-сервера служб IIS для поддержки веб-публикации и развертывания с помощью обработчика веб-развертывания IIS.
При работе с веб-развертыванием 2.0 или более поздней версии существует три main подходов, которые можно использовать для размещения приложений или сайтов на веб-сервере. Вы можете:
- Используйте службу удаленного агента веб-развертывания. Этот подход требует меньшей конфигурации веб-сервера, но необходимо предоставить учетные данные администратора локального сервера, чтобы развернуть что-либо на сервере.
- Используйте обработчик веб-развертывания. Этот подход является гораздо более сложным и требует дополнительных первоначальных усилий для настройки веб-сервера. Однако при использовании этого подхода можно настроить службы IIS, чтобы разрешить пользователям без прав администратора выполнять развертывание. Обработчик веб-развертывания доступен только в службах IIS версии 7 или более поздней.
- Используйте автономное развертывание. Для этого подхода требуется минимальная конфигурация веб-сервера, но администратор сервера должен вручную скопировать веб-пакет на сервер и импортировать его через диспетчер IIS.
Дополнительные сведения о ключевых функциях, преимуществах и недостатках этих подходов см. в статье Выбор правильного подхода к веб-развертыванию.
Да, если вы хотите разрешить пользователям без прав администратора развертывать содержимое на определенных веб-сайтах IIS. Этот подход часто является желательным в следующих сценариях:
- Промежуточные или рабочие среды, в которых пользователь или учетная запись службы, активировающая удаленное развертывание, вряд ли будет иметь доступ к учетным данным администратора сервера.
- Размещенные среды, в которых вы хотите предоставить удаленным пользователям возможность обновлять свои веб-сайты, не предоставляя им полный контроль над вашими веб-серверами (или доступ к чужим веб-сайтам).
В сценариях разработки или тестирования или в небольших организациях развертывание содержимого с использованием учетных данных администратора сервера часто является менее спорным. В этих сценариях настройка веб-серверов для поддержки развертывания с помощью службы удаленного агента веб-развертывания обеспечивает более простой подход.
Обзор задачи
Чтобы настроить веб-сервер для приема и развертывания веб-пакетов с удаленного компьютера с помощью подхода веб-обработчика развертывания, вам потребуется:
- Создайте или выберите учетную запись пользователя домена ("пользователь без прав администратора"), учетные данные которой будут использоваться для выполнения развертываний.
- Установите IIS 7.5, включая службу веб-управления и модуль обычная проверка подлинности.
- Установите Web Deploy 2.1 или более поздней версии.
- Настройте службу веб-управления, чтобы разрешить удаленные подключения, и запустите службу.
- Создайте веб-сайт IIS для размещения развернутого содержимого.
- Предоставьте пользователям, не являющихся администраторами, разрешения на доступ к веб-сайту в диспетчере IIS.
- Убедитесь, что правила делегирования веб-службы управления разрешают службе добавлять и изменять содержимое веб-сайта с помощью учетной записи пользователя без прав администратора.
- Настройте брандмауэры, чтобы разрешить входящие подключения через порт 8172.
Чтобы разместить пример решения ContactManager, вам также потребуется:
- Установите платформа .NET Framework 4.0.
- Установите ASP.NET MVC 3.
В этом разделе показано, как выполнить каждую из этих процедур. В задачах и пошаговых руководствах в этом разделе предполагается, что вы начинаете с чистой сборки сервера под управлением Windows Server 2016. Прежде чем продолжить, убедитесь, что:
- Windows Server 2016
- Сервер присоединен к домену.
- Сервер имеет статический IP-адрес.
Примечание
Дополнительные сведения о присоединении компьютеров к домену см. в разделах Присоединение компьютеров к домену и Вход в систему. Дополнительные сведения о настройке статических IP-адресов см. в разделе Настройка статического IP-адреса.
Установка продуктов и компонентов
В этом разделе описано, как установить необходимые продукты и компоненты на веб-сервере. Перед началом работы рекомендуется запустить клиентский компонент Центра обновления Windows, чтобы убедиться, что сервер полностью обновлен.
В этом случае необходимо установить следующие компоненты:
- Рекомендуемая конфигурация IIS 7. Это включает роль веб-сервера (IIS) на веб-сервере и устанавливает набор модулей и компонентов IIS, необходимых для размещения приложения ASP.NET.
- IIS: служба управления. При этом устанавливается служба веб-управления (WMSvc) в службах IIS. Эта служба обеспечивает удаленное управление веб-сайтами IIS и предоставляет клиентам конечную точку обработчика веб-развертывания.
- IIS: обычная проверка подлинности. При этом устанавливается модуль обычная проверка подлинности IIS. Это позволяет службе веб-управления (WMSvc) проверять подлинность предоставленных учетных данных.
- Средство веб-развертывания 2.1 или более поздней версии. При этом веб-развертывание (и его базовый исполняемый файл MSDeploy.exe) устанавливается на сервере. В рамках этого процесса он устанавливает обработчик веб-развертывания и интегрирует его со службой веб-управления.
- платформа .NET Framework 4.0. Это необходимо для запуска приложений, созданных на основе этой версии платформа .NET Framework.
- ASP.NET MVC 3. При этом устанавливаются сборки, необходимые для запуска приложений MVC 3.
Примечание
В этом пошаговом руководстве описывается использование установщика веб-платформы для установки и настройки различных компонентов. Хотя вам не нужно использовать установщик веб-платформы, он упрощает процесс установки, автоматически обнаруживая зависимости и гарантируя, что вы всегда получаете последние версии продукта. Дополнительные сведения см. в разделе установщик веб-платформы Майкрософт.
Установка необходимых продуктов и компонентов
Скачайте и установите установщик веб-платформы.
После завершения установки установщик веб-платформы запустится автоматически.
Примечание
Теперь установщик веб-платформы можно запустить в любое время из меню "Пуск ". Для этого в меню Пуск выберите пункт Все программы, а затем установщик веб-платформы Майкрософт.
В верхней части окна Установщик веб-платформы щелкните Продукты.
В левой части окна в области навигации щелкните Платформы.
Если платформа .NET Framework еще не установлен, в строке Microsoft платформа .NET Framework 4 нажмите кнопку Добавить.
Примечание
Возможно, вы уже установили платформа .NET Framework с 4.0 по клиентский компонент Центра обновления Windows. Если продукт или компонент уже установлены, установщик веб-платформы укажет это, заменив кнопку Добавить текстом Установлено.
В строке ASP.NET MVC 3 (Visual Studio 2010) нажмите кнопку Добавить.
В области навигации щелкните Сервер.
В строке IIS 7 Recommended Configuration (Рекомендуемые конфигурации IIS 7 ) нажмите кнопку Добавить.
В строке Средства веб-развертывания 2.1 нажмите кнопку Добавить.
В строке IIS: обычная проверка подлинности нажмите кнопку Добавить.
В строке IIS: Служба управления нажмите кнопку Добавить.
Нажмите кнопку Установить. Установщик веб-платформы отобразит список продуктов вместе со связанными зависимостями, которые необходимо установить, и предложит принять условия лицензии.
Просмотрите условия лицензии и, если вы согласны с условиями, нажмите кнопку Принимаю.
После завершения установки нажмите кнопку Готово, а затем закройте окно Установщик веб-платформы .
Если вы установили платформа .NET Framework 4.0 перед установкой СЛУЖБ IIS, необходимо запустить средство регистрации ASP.NET IIS (aspnet_regiis.exe), чтобы зарегистрировать последнюю версию ASP.NET в IIS. Если этого не сделать, вы обнаружите, что службы IIS будут обслуживать статическое содержимое (например, HTML-файлы) без каких-либо проблем, но при попытке перейти к ASP.NET содержимому будет возвращена ошибка HTTP 404.0 — Не найдено . Вы можете использовать следующую процедуру, чтобы убедиться, что ASP.NET 4.0 зарегистрирована.
Регистрация ASP.NET 4.0 в IIS
Нажмите кнопку Пуск и введите Командная строка.
В результатах поиска щелкните правой кнопкой мыши Командная строка и выберите команду Запуск от имени администратора.
В окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .
Введите эту команду и нажмите клавишу ВВОД:
aspnet_regiis -iru
Если вы планируете размещать 64-разрядные веб-приложения в любой момент, следует также зарегистрировать 64-разрядную версию ASP.NET в СЛУЖБАх IIS. Для этого в окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .
Введите эту команду и нажмите клавишу ВВОД:
aspnet_regiis -iru
Рекомендуется использовать клиентский компонент Центра обновления Windows на этом этапе, чтобы скачать и установить все доступные обновления для новых продуктов и компонентов, которые вы установили.
Настройка веб-службы управления
Теперь, когда вы установили все необходимое, следующим шагом является настройка службы веб-управления в СЛУЖБАх IIS. На высоком уровне вам потребуется выполнить следующие задачи:
- Включите обычную проверку подлинности на уровне сервера.
- Настройте службу веб-управления для приема удаленных подключений.
- Запустите службу веб-управления.
- Убедитесь, что необходимые правила делегирования службы веб-управления установлены.
Настройка службы веб-управления
В меню Пуск наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
В диспетчере IIS в области Подключения щелкните узел сервера (например, STAGEWEB1).
В центральной области в разделе IIS дважды щелкните Проверка подлинности.
Щелкните правой кнопкой мыши обычную проверку подлинности и выберите пункт Включить.
В области Подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.
В центральной области в разделе Управление дважды щелкните Служба управления.
В центральной области выберите Включить удаленные подключения.
Примечание
Если служба веб-управления уже запущена, сначала ее необходимо остановить.
В области Действия нажмите кнопку Пуск , чтобы запустить службу веб-управления.
Если вам будет предложено сохранить параметры, нажмите кнопку Да.
Примечание
Также может потребоваться настроить автоматический запуск службы. Для этого откройте консоль служб, щелкните правой кнопкой мыши Веб-служба управления и выберите пункт Свойства. В раскрывающемся списке Тип запуска выберите Автоматически и нажмите кнопку ОК.
В области Подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.
В центральной области в разделе Управление дважды щелкните Делегирование службы управления.
Убедитесь, что центральная панель содержит набор правил.
Эти правила позволяют авторизованным пользователям веб-службы управления использовать различных поставщиков веб-развертывания. Например, чтобы развернуть веб-приложения и содержимое в IIS с помощью обработчика веб-развертывания, должно быть правило делегирования, которое позволяет всем пользователям, прошедшим проверку подлинности, использовать поставщики contentPath и iisApp (последнее правило, которое можно увидеть на снимке экрана).
Если вы установили продукты и компоненты в порядке, описанном в этом разделе, последняя версия веб-развертывания должна автоматически добавить все необходимые правила делегирования в службу веб-управления. Если на странице Делегирование службы управления не отображаются какие-либо правила, их необходимо создать самостоятельно. Инструкции по этому способу см. в разделе Настройка обработчика веб-развертывания.
В области Подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.
Создание и настройка веб-сайта IIS
Перед развертыванием веб-содержимого на сервере необходимо создать и настроить веб-сайт IIS для размещения содержимого. Веб-развертывание может развертывать веб-пакеты только на существующем веб-сайте IIS; он не может создать веб-сайт для вас. Кроме того, необходимо выполнить небольшую дополнительную настройку, чтобы позволить учетной записи без прав администратора удаленно развертывать содержимое. На высоком уровне вам потребуется выполнить следующие задачи:
- Создайте папку в файловой системе для размещения содержимого.
- Создайте веб-сайт IIS для обслуживания содержимого и свяжите его с локальной папкой.
- Предоставьте разрешения на чтение удостоверения пула приложений в локальной папке.
- Предоставьте необходимые разрешения IIS учетной записи домена, которая будет развертывать веб-приложение.
Хотя ничто не мешает развернуть содержимое на веб-сайте по умолчанию в IIS, этот подход не рекомендуется использовать для каких-либо сценариев, кроме тестов или демонстрационных сценариев. Чтобы имитировать рабочую среду, необходимо создать новый веб-сайт IIS с параметрами, соответствующими требованиям вашего приложения.
Создание веб-сайта IIS
В локальной файловой системе создайте папку для хранения содержимого (например, C:\DemoSite).
В меню Пуск наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
В диспетчере IIS в области Подключения разверните узел сервера (например, STAGEWEB1).
Щелкните правой кнопкой мыши узел Сайты и выберите команду Добавить веб-сайт.
В поле Имя сайта введите имя веб-сайта IIS (например, DemoSite).
В поле Физический путь введите (или перейдите по адресу) путь к локальной папке (например, C:\DemoSite).
В поле Порт введите номер порта, на котором вы хотите разместить веб-сайт (например, 85).
Примечание
Стандартные номера портов : 80 для HTTP и 443 для HTTPS. Однако если вы размещаете этот веб-сайт на порту 80, необходимо остановить веб-сайт по умолчанию, прежде чем вы сможете получить доступ к сайту.
Оставьте поле Имя узла пустым, если вы не хотите настроить запись системы доменных имен (DNS) для веб-сайта, а затем нажмите кнопку ОК.
Примечание
В рабочей среде вы, скорее всего, захотите разместить веб-сайт на порту 80 и настроить заголовок узла вместе с соответствующими записями DNS. Дополнительные сведения о настройке заголовков узлов в IIS 7 см. в статье Настройка заголовка узла для веб-сайта (IIS 7). Дополнительные сведения о роли DNS-сервера в Windows Server см. в статье Общие сведения о DNS-сервере.
В области Действия в разделе Изменение веб-сайтавыберите пункт Привязки.
В диалоговом окне Привязки сайта нажмите кнопку Добавить.
В диалоговом окне Добавление привязки сайта задайте IP-адрес и порт в соответствии с существующей конфигурацией сайта.
В поле Имя узла введите имя веб-сервера (например, STAGEWEB1) и нажмите кнопку ОК.
Примечание
Первая привязка сайта позволяет получить доступ к сайту локально, используя IP-адрес и порт или
http://localhost:85
. Вторая привязка сайта позволяет получить доступ к сайту с других компьютеров в домене, используя имя компьютера (например, http://stageweb1:85).В диалоговом окне Привязки сайта нажмите кнопку Закрыть.
В области Подключения щелкните элемент Пулы приложений.
В области Пулы приложений щелкните правой кнопкой мыши имя пула приложений и выберите пункт Основные параметры. По умолчанию имя пула приложений будет совпадать с именем веб-сайта (например, DemoSite).
В списке версий .NET CLR выберите .NET CLR версии 4.0.30319 и нажмите кнопку ОК.
Примечание
Для примера решения требуется платформа .NET Framework 4.0. Это не является обязательным требованием для веб-развертывания в целом.
Чтобы ваш веб-сайт обслуживал содержимое, удостоверение пула приложений должно иметь разрешения на чтение в локальной папке, в которую хранится содержимое. В IIS 7.5 пулы приложений по умолчанию выполняются с уникальным удостоверением пула приложений (в отличие от предыдущих версий IIS, где пулы приложений обычно запускались с помощью учетной записи сетевой службы). Удостоверение пула приложений не является реальной учетной записью пользователя и не отображается в списках пользователей или групп. Вместо этого оно создается динамически при запуске пула приложений. Каждое удостоверение пула приложений добавляется в локальную группу безопасности IIS_IUSRS как скрытый элемент.
Чтобы предоставить разрешения для удостоверения пула приложений на файл или папку, можно двумя способами:
- Назначьте разрешения удостоверению пула приложений напрямую, используя формат IIS AppPool(имя пула приложений) (например, IIS AppPool\DemoSite).
- Назначьте разрешения группе IIS_IUSRS .
Наиболее распространенным подходом является назначение разрешений локальной группе IIS_IUSRS , так как этот подход позволяет изменять пулы приложений без перенастройки разрешений файловой системы. В следующей процедуре используется этот подход на основе групп.
Примечание
Дополнительные сведения об удостоверениях пула приложений в IIS 7.5 см. в разделе Удостоверения пула приложений.
Настройка разрешений папки для веб-сайта IIS
В Windows Обозреватель перейдите к расположению локальной папки.
Щелкните правой кнопкой мыши папку, затем щелкните Свойства.
На вкладке Security щелкните Edit, а затем Add.
Щелкните Расположения. В диалоговом окне Расположения выберите локальный сервер и нажмите кнопку ОК.
В диалоговом окне Выбор пользователей или групп введите IIS_IUSRS, нажмите кнопку Проверить имена и нажмите кнопку ОК.
Обратите внимание, что в диалоговом окне Разрешения для (имя папки) новой группе по умолчанию назначены разрешения Чтение & выполнения, Вывод списка содержимого папки и Чтение . Оставьте это значение без изменений и нажмите кнопку ОК.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства (имя папки).
В качестве окончательной задачи необходимо предоставить соответствующие разрешения пользователю без прав администратора, учетные данные которого будут использоваться для развертывания содержимого. Этому пользователю требуются разрешения для удаленного развертывания содержимого на веб-сайте.
Настройка разрешений веб-сайта IIS для пользователя домена без прав администратора
В диспетчере IIS в области Подключения щелкните правой кнопкой мыши узел веб-сайта (например, DemoSite), наведите указатель на пункт Развернуть, а затем выберите Настроить публикацию веб-развертывания.
В диалоговом окне Настройка публикации веб-развертывания справа от списка Выберите пользователя для предоставления разрешений на публикацию нажмите кнопку с многоточием.
В диалоговом окне Разрешить пользователя введите домен и имя пользователя учетной записи, которую вы хотите использовать для развертывания содержимого, а затем нажмите кнопку ОК.
В диалоговом окне Настройка публикации веб-развертывания нажмите кнопку Настройка.
Примечание
Эта операция выполняет две ключевые функции в одном шаге. Во-первых, пользователь получает разрешение на удаленное изменение веб-сайта с помощью службы управления веб-сайтами в соответствии с правилами делегирования, которые вы изучили в предыдущем разделе. Во-вторых, он предоставляет пользователю полный доступ к исходной папке для веб-сайта, что позволяет пользователю добавлять, изменять и задавать разрешения на содержимое веб-сайта.
В диалоговом окне Настройка публикации веб-развертывания нажмите кнопку Закрыть.
Настройка исключений брандмауэра
По умолчанию служба веб-управления IIS прослушивает TCP-порт 8172. Если брандмауэр Windows включен на веб-сервере, необходимо создать новое правило для входящего трафика, разрешающее трафик TCP через порт 8172 (весь исходящий трафик разрешен по умолчанию в брандмауэре Windows). Если вы используете сторонний брандмауэр, необходимо создать правила для разрешения трафика.
Направление | Из порта | На порт | Тип порта |
---|---|---|---|
Входящий трафик | Любой | 8172 | TCP |
Исходящие | 8172 | Любой | TCP |
Дополнительные сведения о настройке правил в брандмауэре Windows см. в разделе Настройка правил брандмауэра. Для сторонних брандмауэров обратитесь к документации по продукту.
Заключение
Теперь веб-сервер должен быть готов к приему удаленных развертываний в обработчике веб-развертывания через службу управления веб-сайтами. Перед попыткой развертывания веб-приложения на сервере может потребоваться проверка следующие ключевые моменты:
- Вы включили обычную проверку подлинности на уровне сервера в IIS?
- Включили ли вы удаленные подключения к службе веб-управления?
- Вы запустили службу веб-управления?
- Существуют ли правила делегирования служб управления?
- Имеет ли удостоверение пула приложений доступ на чтение к исходной папке для веб-сайта?
- Имеет ли учетная запись пользователя, не являющегося администратором, разрешения на уровне сайта в IIS?
- Разрешает ли брандмауэр входящие подключения к серверу через TCP-порт 8172?
Дополнительные материалы
Инструкции по настройке пользовательских файлов проекта Microsoft Build Engine (MSBuild) для развертывания веб-пакетов в обработчике веб-развертывания см. в разделе Настройка свойств развертывания для целевой среды.