Как развернуть сайт на IIS 6.0 с помощью msdeploy - PullRequest
1 голос
/ 22 марта 2011

У меня есть файл zip на исходном сервере в общем каталоге, и, используя msdeploy, я хотел бы скопировать его на целевой сервер. Однако, если сайт в первый раз не существует на конечном сервере, он также должен создать сайт. И исходный, и целевой серверы - это IIS 6.0 в Windows Server 2003.

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

msdeploy.exe -verb:sync -source:package="\\SourceServer\WebSites\Site1.zip" -dest:metakey="Site1"

Я получаю следующее сообщение:

Ошибка: источник (contentPath) и пункт назначения (metaKey) несовместимы для данной операции.

Я также пытался сначала создать веб-сайт в месте назначения с веб-сайта по умолчанию, затем скопировать файлы, но затем я не знаю, как заставить новый веб-сайт Site1 указывать на этот новый каталог:

  1. msdeploy.exe -verb:sync -source:metakey="Default Web Site" -dest:metakey="Site1"
  2. msdeploy.exe -verb:sync -source:package="\\SourceServer\WebSites\Site1.zip" -dest:contentpath="\\DesitnationServer\WebSites\Site1"
  3. Как заставить новый веб-сайт Site1 указывать на новый каталог "\ DesitnationServer \ WebSites \ Site1"?

Даже если я буду выполнять описанные выше шаги, я не буду выполнять шаги 1 и 2 каждый раз, когда развертываю Site1.

Я уверен, что должен быть простой способ сделать это? Есть идеи?

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Вы должны использовать провайдера iisApp MSDeploy с пунктом назначения. Поставщик iisApp совместим с IIS 6 и 7, тогда как appHostConfig совместим только с IIS 7. Так что попробуйте ниже

msdeploy.exe -verb:sync -source:package="\\SourceServer\WebSites\Site1.zip" -dest:iisApp="Site1"
2 голосов
/ 22 марта 2011

Проблемы!

  • Ваш исходный пакет является резервной копией только для контента (не для настроек (я полагаю из "contentpath")) - вы не можете смешать резервную копию от одного провайдера с восстановлением вдругой провайдер (кроме особых случаев).
  • Ваш синтаксис "metakey" не является местоположением ключа метабазы, которое я видел ранее - это должен быть идентификатор сайта, основанный на расположении сайта в метабазе (длянапример, веб-сайт по умолчанию будет "/ lm / w3svc / 1")

Здесь вы найдете описание того, что вы хотите сделать здесь .Попробуйте!

(перейдите к самому нижнему разделу, который больше всего напоминает то, что вы пытаетесь сделать: «Необязательно - синхронизируйте свой сайт с целевым объектом с помощью файла пакета»)

...