Настройка веб-сервера для публикации веб-развертывания (обработчик веб-развертывания)

В этом разделе описывается настройка веб-сервера служб 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.

Примечание

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

Установка необходимых продуктов и компонентов

  1. Скачайте и установите установщик веб-платформы.

  2. После завершения установки установщик веб-платформы запустится автоматически.

    Примечание

    Теперь установщик веб-платформы можно запустить в любое время из меню "Пуск ". Для этого в меню Пуск выберите пункт Все программы, а затем установщик веб-платформы Майкрософт.

  3. В верхней части окна Установщик веб-платформы щелкните Продукты.

  4. В левой части окна в области навигации щелкните Платформы.

  5. Если платформа .NET Framework еще не установлен, в строке Microsoft платформа .NET Framework 4 нажмите кнопку Добавить.

    Примечание

    Возможно, вы уже установили платформа .NET Framework с 4.0 по клиентский компонент Центра обновления Windows. Если продукт или компонент уже установлены, установщик веб-платформы укажет это, заменив кнопку Добавить текстом Установлено.

    Если продукт или компонент уже установлены, установщик веб-платформы укажет это, заменив кнопку Добавить текстом Установлено.

  6. В строке ASP.NET MVC 3 (Visual Studio 2010) нажмите кнопку Добавить.

  7. В области навигации щелкните Сервер.

  8. В строке IIS 7 Recommended Configuration (Рекомендуемые конфигурации IIS 7 ) нажмите кнопку Добавить.

  9. В строке Средства веб-развертывания 2.1 нажмите кнопку Добавить.

  10. В строке IIS: обычная проверка подлинности нажмите кнопку Добавить.

  11. В строке IIS: Служба управления нажмите кнопку Добавить.

  12. Нажмите кнопку Установить. Установщик веб-платформы отобразит список продуктов вместе со связанными зависимостями, которые необходимо установить, и предложит принять условия лицензии.

    Нажмите кнопку Установить. Установщик веб-платформы отобразит список продуктов вместе со связанными зависимостями, которые необходимо установить, и предложит принять условия лицензии.

  13. Просмотрите условия лицензии и, если вы согласны с условиями, нажмите кнопку Принимаю.

  14. После завершения установки нажмите кнопку Готово, а затем закройте окно Установщик веб-платформы .

Если вы установили платформа .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

  1. Нажмите кнопку Пуск и введите Командная строка.

  2. В результатах поиска щелкните правой кнопкой мыши Командная строка и выберите команду Запуск от имени администратора.

  3. В окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .

  4. Введите эту команду и нажмите клавишу ВВОД:

    aspnet_regiis -iru
    
  5. Если вы планируете размещать 64-разрядные веб-приложения в любой момент, следует также зарегистрировать 64-разрядную версию ASP.NET в СЛУЖБАх IIS. Для этого в окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .

  6. Введите эту команду и нажмите клавишу ВВОД:

    aspnet_regiis -iru
    

Рекомендуется использовать клиентский компонент Центра обновления Windows на этом этапе, чтобы скачать и установить все доступные обновления для новых продуктов и компонентов, которые вы установили.

Настройка веб-службы управления

Теперь, когда вы установили все необходимое, следующим шагом является настройка службы веб-управления в СЛУЖБАх IIS. На высоком уровне вам потребуется выполнить следующие задачи:

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

Настройка службы веб-управления

  1. В меню Пуск наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.

  2. В диспетчере IIS в области Подключения щелкните узел сервера (например, STAGEWEB1).

    В диспетчере IIS в области Подключения щелкните узел сервера (например, STAGEWEB1).

  3. В центральной области в разделе IIS дважды щелкните Проверка подлинности.

    В центральной области в группе IIS дважды щелкните Проверка подлинности.

  4. Щелкните правой кнопкой мыши обычную проверку подлинности и выберите пункт Включить.

    Щелкните правой кнопкой мыши обычную проверку подлинности и выберите пункт Включить.

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

  6. В центральной области в разделе Управление дважды щелкните Служба управления.

    В центральной области в разделе Управление дважды щелкните Служба управления.

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

    Примечание

    Если служба веб-управления уже запущена, сначала ее необходимо остановить.

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

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

  9. Если вам будет предложено сохранить параметры, нажмите кнопку Да.

    Примечание

    Также может потребоваться настроить автоматический запуск службы. Для этого откройте консоль служб, щелкните правой кнопкой мыши Веб-служба управления и выберите пункт Свойства. В раскрывающемся списке Тип запуска выберите Автоматически и нажмите кнопку ОК.

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

  11. В центральной области в разделе Управление дважды щелкните Делегирование службы управления.

    В центральной области в разделе Управление дважды щелкните Делегирование службы управления.

  12. Убедитесь, что центральная панель содержит набор правил.

    Убедитесь, что центральная панель содержит набор правил.

    Эти правила позволяют авторизованным пользователям веб-службы управления использовать различных поставщиков веб-развертывания. Например, чтобы развернуть веб-приложения и содержимое в IIS с помощью обработчика веб-развертывания, должно быть правило делегирования, которое позволяет всем пользователям, прошедшим проверку подлинности, использовать поставщики contentPath и iisApp (последнее правило, которое можно увидеть на снимке экрана).

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

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

Создание и настройка веб-сайта IIS

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

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

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

Создание веб-сайта IIS

  1. В локальной файловой системе создайте папку для хранения содержимого (например, C:\DemoSite).

  2. В меню Пуск наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.

  3. В диспетчере IIS в области Подключения разверните узел сервера (например, STAGEWEB1).

    В диспетчере IIS в области Подключения разверните узел сервера (например, STAGEWEB1).

  4. Щелкните правой кнопкой мыши узел Сайты и выберите команду Добавить веб-сайт.

  5. В поле Имя сайта введите имя веб-сайта IIS (например, DemoSite).

  6. В поле Физический путь введите (или перейдите по адресу) путь к локальной папке (например, C:\DemoSite).

  7. В поле Порт введите номер порта, на котором вы хотите разместить веб-сайт (например, 85).

    Примечание

    Стандартные номера портов : 80 для HTTP и 443 для HTTPS. Однако если вы размещаете этот веб-сайт на порту 80, необходимо остановить веб-сайт по умолчанию, прежде чем вы сможете получить доступ к сайту.

  8. Оставьте поле Имя узла пустым, если вы не хотите настроить запись системы доменных имен (DNS) для веб-сайта, а затем нажмите кнопку ОК.

    Оставьте поле Имя узла пустым, если вы не хотите настроить запись системы доменных имен (DNS) для веб-сайта, а затем нажмите кнопку ОК.

    Примечание

    В рабочей среде вы, скорее всего, захотите разместить веб-сайт на порту 80 и настроить заголовок узла вместе с соответствующими записями DNS. Дополнительные сведения о настройке заголовков узлов в IIS 7 см. в статье Настройка заголовка узла для веб-сайта (IIS 7). Дополнительные сведения о роли DNS-сервера в Windows Server см. в статье Общие сведения о DNS-сервере.

  9. В области Действия в разделе Изменение веб-сайтавыберите пункт Привязки.

  10. В диалоговом окне Привязки сайта нажмите кнопку Добавить.

    В диалоговом окне Привязки сайтов нажмите кнопку Добавить.

  11. В диалоговом окне Добавление привязки сайта задайте IP-адрес и порт в соответствии с существующей конфигурацией сайта.

  12. В поле Имя узла введите имя веб-сервера (например, STAGEWEB1) и нажмите кнопку ОК.

    В поле Имя узла введите имя веб-сервера (например, STAGEWEB1) и нажмите кнопку ОК.

    Примечание

    Первая привязка сайта позволяет получить доступ к сайту локально, используя IP-адрес и порт или http://localhost:85. Вторая привязка сайта позволяет получить доступ к сайту с других компьютеров в домене, используя имя компьютера (например, http://stageweb1:85).

  13. В диалоговом окне Привязки сайта нажмите кнопку Закрыть.

  14. В области Подключения щелкните элемент Пулы приложений.

  15. В области Пулы приложений щелкните правой кнопкой мыши имя пула приложений и выберите пункт Основные параметры. По умолчанию имя пула приложений будет совпадать с именем веб-сайта (например, DemoSite).

  16. В списке версий .NET CLR выберите .NET CLR версии 4.0.30319 и нажмите кнопку ОК.

    В списке версий .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

  1. В Windows Обозреватель перейдите к расположению локальной папки.

  2. Щелкните правой кнопкой мыши папку, затем щелкните Свойства.

  3. На вкладке Security щелкните Edit, а затем Add.

  4. Щелкните Расположения. В диалоговом окне Расположения выберите локальный сервер и нажмите кнопку ОК.

    Щелкните Расположения. В диалоговом окне Расположения выберите локальный сервер и нажмите кнопку ОК.

  5. В диалоговом окне Выбор пользователей или групп введите IIS_IUSRS, нажмите кнопку Проверить имена и нажмите кнопку ОК.

  6. Обратите внимание, что в диалоговом окне Разрешения для (имя папки) новой группе по умолчанию назначены разрешения Чтение & выполнения, Вывод списка содержимого папки и Чтение . Оставьте это значение без изменений и нажмите кнопку ОК.

  7. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства (имя папки).

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

Настройка разрешений веб-сайта IIS для пользователя домена без прав администратора

  1. В диспетчере IIS в области Подключения щелкните правой кнопкой мыши узел веб-сайта (например, DemoSite), наведите указатель на пункт Развернуть, а затем выберите Настроить публикацию веб-развертывания.

    В диспетчере IIS в области Подключения щелкните правой кнопкой мыши узел веб-сайта (например, DemoSite), наведите указатель на пункт Развернуть, а затем выберите Настроить публикацию веб-развертывания.

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

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

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

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

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

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

    Примечание

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

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

Настройка исключений брандмауэра

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

Направление Из порта На порт Тип порта
Входящий трафик Любой 8172 TCP
Исходящие 8172 Любой TCP

Дополнительные сведения о настройке правил в брандмауэре Windows см. в разделе Настройка правил брандмауэра. Для сторонних брандмауэров обратитесь к документации по продукту.

Заключение

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

  • Вы включили обычную проверку подлинности на уровне сервера в IIS?
  • Включили ли вы удаленные подключения к службе веб-управления?
  • Вы запустили службу веб-управления?
  • Существуют ли правила делегирования служб управления?
  • Имеет ли удостоверение пула приложений доступ на чтение к исходной папке для веб-сайта?
  • Имеет ли учетная запись пользователя, не являющегося администратором, разрешения на уровне сайта в IIS?
  • Разрешает ли брандмауэр входящие подключения к серверу через TCP-порт 8172?

Дополнительные материалы

Инструкции по настройке пользовательских файлов проекта Microsoft Build Engine (MSBuild) для развертывания веб-пакетов в обработчике веб-развертывания см. в разделе Настройка свойств развертывания для целевой среды.