Настройка веб-сервера для публикации с помощью Web Deploy (удаленный агент)

Джейсон Ли

В этом разделе описывается, как настроить веб-сервер IIS для поддержки веб-публикации и развертывания с помощью службы удаленного агента Инструмента развертывания IIS (Web Deploy).

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

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

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

Подходит ли агент Web Deploy Remote Agent для вас?

Да, если пользователь, который развернет содержимое, может предоставить учетные данные администратора на целевом сервере. Этот подход часто является желательным в таких сценариях:

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

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

Обзор задачи

В этом разделе описывается, как настроить веб-сервер Интернет-информационных служб (IIS) 7.5 для принятия и развертывания веб-пакетов с удаленного компьютера с использованием подхода "Web Deploy Remote Agent". Вам понадобится:

  • Установите iis 7.5 и рекомендуемую конфигурацию IIS 7.
  • Установите Web Deploy 2.1 или более поздней версии.
  • Создайте веб-сайт IIS для размещения развернутого содержимого.
  • Убедитесь, что служба агента веб-развертывания запущена.

Чтобы разместить пример решения, вам также потребуется:

  • Установите .NET Framework 4.0.
  • Установите ASP.NET MVC 3.

В этом разделе показано, как выполнять каждую из этих процедур. Задачи и пошаговые руководства в этом разделе предполагают, что вы начинаете с чистой сборки сервера под управлением Windows Server 2008 R2. Прежде чем продолжить, убедитесь, что:

  • Windows Server 2008 R2 с пакетом обновления 1 (SP1) и установлены все доступные обновления.
  • Сервер присоединен к домену.
  • Сервер имеет статический IP-адрес.

Замечание

Дополнительные сведения о присоединении компьютеров к домену см. в разделе "Присоединение компьютеров к домену и вход". Дополнительные сведения о настройке статических IP-адресов см. в разделе "Настройка статического IP-адреса". Служба удаленного агента поддерживается начиная с IIS 6 и не требует присоединения к домену. Однако действия, описанные в этом руководстве, были разработаны и протестированы в IIS 7.5 и процедурах для других версий могут отличаться.

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

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

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

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

Замечание

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

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

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

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

    Замечание

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

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

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

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

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

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

Если перед установкой 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. Введите эту команду и нажмите клавишу ВВОД:

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

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

    aspnet_regiis -iru
    

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

Настройка веб-сайта IIS

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

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

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

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

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

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

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

    В диспетчере 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 2008 R2 см. в обзоре DNS-сервера.

  9. В области "Действия" в разделе "Изменить сайт" щелкните "Привязки".

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

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

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

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

    В поле

    Замечание

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

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

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

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

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

    В списке версий .NET Framework выберите .NET Framework версии 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. Нажмите кнопку "ОК", чтобы закрыть диалоговое окно "Свойства" (имя папки).

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

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

Проверка запуска службы агента веб-развертывания

  1. В меню "Пуск " выберите пункт "Администрирование" и выберите "Службы".

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

    Найдите строку службы агента веб-развертывания и убедитесь, что состояние установлено на

  3. Если служба еще не запущена, нажмите кнопку "Пуск".

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

По умолчанию служба удаленного агента прослушивает TCP-порт 80 по этому URL-адресу:

http://servername.com/MSDEPLOYAGENTSERVICE

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

Conclusion

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

  • Вы зарегистрировали ASP.NET 4.0 в IIS?
  • Имеет ли учетная запись пула приложений доступ на чтение к исходной папке вашего веб-сайта?
  • Запущена ли служба Web Deployment Agent?

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

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