Использование WebDeploy для переноса сайтов IIS между серверами

less than 1 minute read

Использование WebDeploy очень облегчает задаче переноса конфигов и контэтна сайтов между Windows серверами. WebDeploy незаменима при работе с большим количеством сайтов (100+).

Она не включена в в пакете IIS и устанавливается отдельно. Самый простой способ - использование Microsoft Web Platform Installer

Находим и устанавливаем:
Screenshot from 2015-10-22 15:19:23

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

Вот пример команды, которая перенесет все настройки IIS на новый сервер:

msdeploy.exe -verb:sync -source:webServer, -dest:webServer,computername=**IP_адрес**,userName=**Administrator**,password=**пароль** -enableLink:apppoolextension -disableLink:content

Сам exe-шник находится в папке C:\Program Files\IIS\Microsoft Web Deploy при чем трех версий

Опция -disableLink:content отключает трансфер контента. Ее можно не отключать, но эффективнее и быстрее будет перенести файлы сайтов через ftp протокол с помощью FileZilla в несколько параллельных потоков.

В большинстве случаев после такого трансфера на новом сервере что-то сломается, поэтому нужно быть максимально аккуратным при работе с production серверами.

Вот тут приведена крутая таблица ошибок WebDeploy с описанием (естественно на английском):
http://webdeploywiki.com/Common%20Web%20Deploy%20problems%20and%20how%20to%20troubleshoot%20them.ashx