Как установить пакет развертывания с помощью файла deploy.cmd созданного в Visual Studio

При создании пакета веб-развертывания в Visual Studio создается CMD-файл, который можно использовать для установки этого пакета. Данный CMD-файл содержит фактические команды инструмента Web Deploy, производящие установку пакета. CMD-файл служит для упрощения установки с использованием синтаксиса командной строки, так как команды инструмента Web Deploy могут быть длинными и сложными.

Перед запуском CMD-файла необходимо убедиться в правильности настройки конечного сервера. Если конечным пунктом является удаленный сервер, необходимо убедиться в наличии соответствующего подключения к удаленному серверу и в наличии достаточных разрешений на этом сервере. При запуске CMD-файла ему можно передать параметры, которые будут переданы этим файлом в инструмент Web Deploy.

В этом разделе описывается синтаксис, используемый для запуска CMD-файла. Приводятся общие сведения о необходимых предварительных условиях запуска CMD-файла и ссылки на другие ресурсы с более подробными сведениями о настройке.

Выбор метода установки

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

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

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

Доступны следующие методы установки.

  • Внутрипроцессная установка пакета на локальном сервере (на сервере, на котором выполняется CMD-файл).

    Необходимо обладать правами администратора на локальном сервере. Этот метод обычно используется разработчиками для развертывания на компьютере разработки с целью локального тестирования с использованием IIS.

  • Установка на удаленном сервере с помощью службы веб-управления (WMSvc) и обработчика веб-развертывания.

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

    Для этого метода требуются службы IIS 7. Сотрудник, обладающий правами администратора на конечном сервере, с помощью диспетчера служб IIS настраивает учетную запись, которую можно использовать для развертывания. При развертывании используются учетные данные этой учетной записи. Преимущество этого метода заключается в том, что при развертывании не требуется обладать правами администратора на конечном сервере. Недостаток заключается в том, что обычно невозможно выполнение задач развертывания, для которых требуются права администратора (например, настройка параметров IIS).

  • Установка на удаленном сервере с помощью службы агента веб-развертывания (MsDepSvc). Эта служба также называется службой удаленного веб-развертывания или просто удаленным агентом.

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

  • Установка на удаленный сервер с помощью параметра поставщика tempAgent инструмента Web Deploy.

    Как и в случае удаленного агента, необходимо обладать правами администратора на конечном сервере. Преимущество этого метода над методом удаленного агента заключается в отсутствии необходимости установки инструмента Web Deploy на компьютер, на котором выполняется командный файл, или на конечный компьютер. Инструмент Web Deploy можно запустить из общей папки на сервере, на котором установлен инструмент Web Deploy. Следовательно, можно выполнить развертывание на нескольких северах без предварительной установки инструмента Web Deploy на каждый сервер. Кроме того, не требуется производить обновление каждого сервера при выпуске новых версий инструмента Web Deploy или проверять, что на исходном и конечном компьютерах установлена одинаковая версия инструмента Web Deploy. Метод параметра поставщика tempAgent требует дополнительной настройки на конечных серверах по сравнению с методом удаленного агента. Однако если требуется обслуживать несколько серверов, этот метод со временем обычно обеспечивает меньший объем работ по обслуживанию.

Дополнительные сведения о выборе варианта, подходящего для вашего сценария, см. в разделе Удаленное использование веб-развертывания на веб-сайте Microsoft TechNet.

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

Настройка сервера для локального развертывания

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

Настройка сервера для локального внутрипроцессного развертывания

  • Убедитесь, что на сервере установлено следующее программное обеспечение.

    • IIS 5.1, IIS 6 или IIS 7.

    • Платформа .NET Framework 2.0 с пакетом обновления 1 (SP1) или более поздней версии, если требуется для устанавливаемого веб-приложения.

    • Web Deploy (той же версии, которая использовалась для создания пакета).

    Дополнительные сведения об установке IIS и продуктов .NET Framework и Web Deploy с помощью установщика веб-платформ см. в разделе Установщик веб-платформ Microsoft, версия 2.0 на веб-сайте Microsoft.

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

В следующей процедуре приводятся общие сведения о том, как настроить исходный и конечный компьютеры, чтобы можно было устанавливать пакеты развертывания с помощью службы веб-управления (WMSvc) и обработчика веб-развертывания. Дополнительные сведения и подробные инструкции см. в разделе Настройка обработчика веб-развертывания на веб-сайте Microsoft TechNet или в разделе Настройка обработчика веб-развертывания на веб-сайте IIS. net.

Настройка серверов для развертывания с помощью службы веб-управления

  1. Убедитесь, что на компьютер, на котором выполняется CMD-файл развертывания, установлено следующее программное обеспечение.

    • Web Deploy (той же версии, которая использовалась для создания пакета).
  2. Убедитесь, что на конечный сервер установлено следующее программное обеспечение.

    • IIS 7.

    • Платформа .NET Framework 2.0 с пакетом обновления 1 (SP1) или более поздней версии, если требуется для устанавливаемого веб-приложения.

    • Web Deploy (той же версии, которая использовалась для создания пакета).

    Дополнительные сведения об установке IIS и продуктов .NET Framework и Web Deploy с помощью установщика веб-платформ см. в разделе Установщик веб-платформ Microsoft, версия 2.0 на веб-сайте Microsoft.

  3. На конечном сервере настройте службу веб-управления (WMSvc), выполнив следующие действия.

    1. Добавьте службу роли службы управления.

    2. Разрешите удаленные подключения.

    3. Создайте учетную запись, которая будет использоваться для установки пакета.

    4. Добавьте правила делегирования для этой учетной записи пользователя.

  4. На конечном компьютере убедитесь, что для пула приложений веб-сайта IIS, на который устанавливается пакет, задана версия платформы .NET Framework, необходимая для этого пакета. (Если в пакете указано имя веб-приложения, но не указано имя веб-сайта, он будет установлен на веб-сайте по умолчанию.)

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

В следующей процедуре приводятся общие сведения о том, как настроить исходный и конечный компьютеры, чтобы можно было удаленно устанавливать пакеты развертывания с помощью службы агента веб-развертывания (MSDepSvc). Дополнительные сведения см. в разделе Служба удаленного веб-развертывания на веб-сайте Microsoft TechNet.

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

  1. Убедитесь, что на сервер, на котором выполняется CMD-файл развертывания, установлено следующее программное обеспечение.

    • Web Deploy (той же версии, которая использовалась для создания пакета).
  2. Убедитесь, что на конечный сервер установлено следующее программное обеспечение.

    • IIS 5.1, IIS 6 или IIS 7.

    • Платформа .NET Framework 2.0 с пакетом обновления 1 (SP1) или более поздней версии, если это требуется для устанавливаемого веб-приложения.

    • Web Deploy (той же версии, которая использовалась для создания пакета).

    Дополнительные сведения об использовании установщика веб-платформ для установки IIS и продуктов .NET Framework и Web Deploy см. в разделе Установщик веб-платформ Microsoft, версия 2.0 на веб-сайте Microsoft.

  3. На конечном сервере убедитесь, что служба MSDepSvc настроена и запущена.

  4. На конечном сервере настройте брандмауэр так, чтобы он разрешал HTTP-трафик через порт 80.

  5. На конечном компьютере убедитесь, что для пула приложений веб-сайта IIS, на который устанавливается пакет, задана версия платформы .NET Framework, необходимая для этого пакета. (Если пакет указывает имя веб-приложения, а не имя веб-сайта, он будет установлен на веб-сайте по умолчанию.)

Настройка серверов для параметра поставщика tempAgent

В следующей процедуре приводятся общие сведения о том, как настроить исходный и конечный компьютеры для удаленной установки с помощью параметра поставщика tempAgent инструмента Web Deploy. Дополнительные сведения см. в разделе Служба веб-развертывания по запросу на веб-сайте Microsoft TechNet.

Настройка серверов для развертывания с помощью параметра поставщика tempAgent инструмента Веб-развертывание

  1. Убедитесь, что на исходный компьютер установлено следующее программное обеспечение.

    • Служба агента веб-развертывания (MSDepSvc)

      Примечание

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

  2. Убедитесь, что на конечный сервер установлено следующее программное обеспечение.

    • IIS 5.1, IIS 6 или IIS 7.

    • Платформа .NET Framework 2.0 SP1 или более поздней версии, если это требуется для устанавливаемого веб-приложения.

    Дополнительные сведения об установке IIS и продукта .NET Framework с помощью установщика веб-платформ см. в разделе Установщик веб-платформ Microsoft, версия 2.0 на веб-сайте Microsoft.

  3. На конечном сервере настройте брандмауэр так, чтобы он разрешал следующее:

    • HTTP-трафик через порт 80;

    • WMI-трафик.

  4. На конечном сервере убедитесь, что запущена служба инструментария управления Windows (WMI).

  5. На конечном сервере убедитесь в наличии общей папки, в которую можно скопировать временные программные файлы инструмента Web Deploy.

  6. На конечном сервере убедитесь, что не установлена служба агента веб-развертывания (MSDepSvc). Если эта служба установлена, она будет мешать процессу развертывания.

  7. Убедитесь, что учетные данные, используемые при выполнении командного файла развертывания, относятся к учетной записи пользователя, являющегося локальным администратором на удаленном сервере.

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

Выполнение командного файла

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

Развертывание с помощью командного файла

  1. Убедитесь, что пакет (ProjectName.zip), файл ProjectName.SetParameters.xml и файл ProjectName.deploy.cmd находятся в одной и той же папке.

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

  2. Если требуется настроить значения любых параметров, включенных в файл SetParameters.xml, измените значения, отредактировав этот файл.

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

  3. Выполните командный файл, указав флаг t (пробный режим) и необязательные флаги, подходящие для вашего сценария.

    Ниже приведены типичные сценарии и подходящие для них необязательные флаги.

    Примечание

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

    Примечание

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

    • Для службы веб-управления (WMSvc) включите флаг m и задайте URL-адрес службы как MSDeploy.axd, используя следующий синтаксис:

      ProjectName.deploy.cmd /t /m:https://DestinationServerName:8172/MSDeploy.axd

      Чтобы указать имя пользователя и пароль, включите флаги u и p. Добавьте флаг a, чтобы задать базовую проверку подлинности. В следующем примере показано, как использовать эти флаги.

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic

      Чтобы разрешить ненадежные сертификаты, добавьте -AllowUntrusted=True, как показано в следующем примере:

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic -AllowUntrusted=True

    • Для службы агента веб-развертывания (MSDepSvc) включите флаг m и задайте имя или URL-адрес конечного сервера как MSDeployAgentService, используя следующий синтаксис:

      ProjectName.deploy.cmd /t /m:DestinationServerName

      ProjectName.deploy.cmd /t /m:http://DestinationServerName/MSDeployAgentService

      Чтобы указать имя пользователя и пароль, включите флаги u и p. (Не добавляйте флаг a, как это было сделано для службы WMSvc.)

    • Для параметра поставщика tempAgent включите флаг g и флаг m для задания имени компьютера, используя следующий синтаксис:

      ProjectName.deploy.cmd /t /m:DestinationServerName /g:true

      Чтобы указать имя пользователя и пароль, включите флаги u и p. (Не добавляйте флаг a, как это было сделано для службы WMSvc.)

    • Чтобы пропустить поставщика базы данных, включите команду skip инструмента Web Deploy для поставщика SQL Server, используя следующий синтаксис:

      ProjectName.deploy.cmd /t "-skip:objectName=dbFullSql"

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

    • Чтобы пропустить обновление файла Web.config, включите для файла команду skip инструмента Web Deploy. Это может использоваться для исключения перезаписи параметров файла Web.config, вручную настроенного на конечном сервере.

      В приведенном ниже примере показано, как пропустить все файлы Web.config в приложении.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\[\w\s]+web\.config$"

      В приведенном ниже примере показано, как пропустить только файл Web.config приложения.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\web\.config$"

  4. Проверьте журнал развертывания в пробном режиме, произведите все требуемые изменения и снова выполните командный файл с флагом t.

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

  6. Выполните командный файл, используя флаг y ("да" или режим обновления) вместо флага t, а также выбранные необязательные флаги.

    Инструмент Web Deploy производит развертывание и отображает журнал выполненных действий.

В предыдущей процедуре приведены примеры синтаксиса для типичных сценариев и показано, как использовать флаги, определенные в CMD-файле. Для других сценариев можно передать любую команду инструмента Web Deploy в инструмент Web Deploy. Вы не ограничены флагами, определенными в CMD-файле. При указании команды, содержащей знак равенства (=), флаг должен быть заключен в кавычки, как показано в предыдущих примерах.

Команды Web Deploy можно указывать, задавая значения переменной среды __MsDeployAdditionalFlags.

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

См. также

Основные понятия

Карта содержимого веб-развертывания для Visual Studio b ASP.NET