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

В этом разделе описывается, как настроить веб-сервер Internet Information Services (IIS) для поддержки веб-публикации и развертывания с использованием обработчика веб-развертывания IIS.

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

  • Используйте службу удаленного агента веб-развертывания. Этот подход требует меньшей конфигурации веб-сервера, но для развертывания на сервере необходимо указать учетные данные локального администратора сервера.
  • Используйте обработчик веб-развертывания. Этот подход является гораздо более сложным и требует дополнительных первоначальных усилий по настройке веб-сервера. Однако при использовании этого подхода можно настроить службы 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-адрес.

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

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

В этом случае необходимо установить следующие компоненты:

  • Рекомендуемая конфигурация IIS 7. Это включает роль веб-сервера (IIS) и устанавливает набор модулей и компонентов IIS, необходимых для размещения приложения ASP.NET.
  • IIS: служба управления. Устанавливается служба управления вебом (WMSvc) в службах IIS. Эта служба обеспечивает удаленное управление веб-сайтами IIS и предоставляет точку доступа для обработчика Web Deploy клиентам.
  • IIS: Basic Authentication. При этом устанавливается модуль базовой проверки подлинности IIS. Это позволяет службе веб-управления (WMSvc) пройти проверку подлинности предоставленных учетных данных.
  • Средство веб-развертывания 2.1 или более поздней версии. Это устанавливает Web Deploy (и его базовый исполняемый файл, MSDeploy.exe) на вашем сервере. В рамках этого процесса он устанавливает обработчик веб-развертывания и интегрирует его с веб-службой управления.
  • .NET Framework 4.0. Это необходимо для запуска приложений, созданных на основе этой версии .NET Framework.
  • ASP.NET MVC 3. Это устанавливает сборки, необходимые для запуска приложений MVC 3.

Замечание

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

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

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

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

    Замечание

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

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

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

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

    Замечание

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

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

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

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

  8. В строке рекомендуемой конфигурации IIS 7 нажмите кнопку "Добавить".

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

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

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

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

    Нажмите кнопку

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

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

Если перед установкой IIS установлен .NET Framework 4.0, необходимо запустить средство регистрации ASP.NET IIS (aspnet_regiis.exe), чтобы зарегистрировать последнюю версию ASP.NET в IIS. Если этого не сделать, служба IIS будет обслуживать статическое содержимое (например, HTML-файлы) без каких-либо проблем, но возвращает ошибку HTTP 404.0 — не найдена при попытке перейти к ASP.NET содержимому. Следующую процедуру можно использовать для регистрации ASP.NET 4.0.

Регистрация ASP.NET 4.0 в IIS

  1. Нажмите кнопку "Пуск", а затем введите командную строку.

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

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

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

    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 в области

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

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

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

    Щелкните правой кнопкой мыши Базовую проверку подлинности и нажмите кнопку

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

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

    В центральной области в разделе

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

    Замечание

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

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

    В области

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

    Замечание

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

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

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

    В центральной области в разделе

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

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

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

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

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

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

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

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

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

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

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

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

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

    В диспетчере IIS в области

  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), а затем нажмите кнопку "ОК".

    В поле

    Замечание

    Первая привязка сайта позволяет получить доступ к сайту локально с помощью 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. На вкладке "Безопасность" нажмите кнопку "Изменить" и нажмите кнопку "Добавить".

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

    Щелкните

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

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

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

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

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

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

    В диспетчере IIS, в области

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

    В диалоговом окне

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

    В диалоговом окне

  4. В диалоговом окне "Конфигурация публикации через Web Deploy" нажмите "Настроить".

    В диалоговом окне

    Замечание

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

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

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

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

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

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

Conclusion

Теперь ваш веб-сервер должен быть готов принимать удалённые развертывания на Web Deploy Handler через службу управления веб-сервером. Прежде чем пытаться развернуть веб-приложение на сервере, может потребоваться проверить следующие ключевые моменты:

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

Дальнейшее чтение

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