MSDeploy и страница "Сайт в обслуживании" - PullRequest
9 голосов
/ 27 января 2011

Я новичок в MSDeploy, а также в IIS admin.

Чтобы показать страницу «Сайт в обслуживании», мы рассмотрим две альтернативы.

1) Создайте страницу app_Offline.htm и синхронизируйте ее с сервером при запуске обслуживания.

2) Создайте отдельную папку с совершенно другим сайтом (который может отображать намного больше динамической информации, чем мы можем на странице app_offline). Во время обслуживания предлагается изменить сопоставление виртуальной папки сайта, чтобы оно указывало на эту другую папку, пока мы работаем над обновлением сайта.

Есть ли способ изменить виртуальную папку так, чтобы она указывала на другую папку с помощью MSDeploy? Есть ли другой способ сделать это через скрипт, вместо того, чтобы идти на каждый сервер и вручную менять папку?

1 Ответ

16 голосов
/ 31 января 2011

Установить app_offline с помощью MSDeploy

То, что мы делали в прошлом, - это сценарий нашего развертывания с использованием Msdeploy.exe. Мы выполняем 3 команды.

  1. Первая команда развертывает страницу app_offline.htm.

    msdeploy -verb: sync -source: filePath = c: \ location \ app_Offline.htm -dest: filePath = c: \ site \ app_Offline.htm

  2. Во-вторых, мы фактически разворачиваем сайт, используя тот же глагол «sync», но используя пакет.

  3. В-третьих, мы удалим app_offline.htm с помощью MSdeploy.

    msdeploy -verb: delete -dest: filePath = c: \ site \ app_Offline.htm

Вы можете выполнить msdeploy на нескольких серверах, используя целевой переключатель «имя_компьютера». Нравится:

msdeploy -verb:sync -source:filePath=c:\location\app_Offline.htm,computername=sourcemachine  -dest:filePath=c:\site\app_Offline.htm,computername=destmachine  

Вы можете найти более подробную информацию обо всех различных параметрах для использования msdeploy из командной строки здесь: http://technet.microsoft.com/en-us/library/dd568991%28WS.10%29.aspx

Создание виртуального каталога с использованием MSDeploy

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

Новый элемент IIS: \ Sites \ Default Web Site \ VirtualDirName ', тип VirtualDirectory -physicalPath c: \ test \ virtualDirectory1

Вы можете найти больше информации об использовании powershell для этого здесь: http://learn.iis.net/page.aspx/433/powershell-snap-in-creating-web-sites-web-applications-virtual-directories-and-application-pools/

Затем выполните команду msdeploy с использованием поставщика "runcommand". Вы должны выполнить эту строку для каждого сервера.

msdeploy -verb:sync -source:runCommand="net start createvirtualdir.ps" -dest:computername=destmachine
...