ОК, так как каждый отрицает ответ, я написал еще в 2008 году * ...
Я расскажу вам, как мы это делаем сейчас в 2014 году. Мы больше не используем веб-сайты, потому что сейчас мы используем ASP.NET MVC.
Нам, конечно, не нужен балансировщик нагрузки и два сервера для этого, это хорошо, если у вас есть 3 сервера для каждого поддерживаемого вами сайта, но это для большинства сайтов излишнее.
Кроме того, мы не полагаемся на последний мастер от Microsoft - слишком медленный, слишком много скрытой магии и слишком склонный к изменению его имени.
Вот как мы это делаем:
У нас есть шаг после сборки, который копирует сгенерированные библиотеки DLL в папку bin-pub.
Мы используем Beyond Compare (что отлично **) для проверки и синхронизации измененных файлов (через FTP, потому что это широко поддерживается) до рабочего сервера
У нас есть защищенный URL-адрес на веб-сайте, содержащий кнопку, которая копирует все данные из «bin-pub» в «bin» (сначала сделайте резервную копию, чтобы включить быстрый откат). На этом этапе приложение перезапускает себя. Затем наш ORM проверяет наличие каких-либо таблиц или столбцов, которые необходимо добавить, и создает их.
Это просто миллисекунды простоя. Перезапуск приложения может занять секунду или две, но во время перезапуска запросы буферизуются, поэтому время простоя фактически равно нулю.
Весь процесс развертывания занимает от 5 секунд до 30 минут, в зависимости от того, сколько файлов изменено и сколько изменений нужно просмотреть.
Таким образом, вам не нужно копировать весь сайт в другой каталог, а только в папку bin. Вы также имеете полный контроль над процессом и точно знаете, что меняется.
** Мы всегда делаем быстрый взгляд на изменения, которые мы внедряем - как двойную проверку в последнюю минуту, поэтому мы знаем, что тестировать, и если что-то сломается, мы готовы. Мы используем Beyond Compare, потому что он позволяет легко различать файлы по FTP. Я бы никогда не сделал этого без BC, ты не представляешь, что перезаписываешь.
* Прокрутите вниз, чтобы увидеть его :( Кстати, я бы больше не рекомендовал веб-сайты, потому что они медленнее создавались и могли плохо работать с полускомпилированными временными файлами. Мы использовали их в прошлом, потому что они позволяли более гибкие развертывание по файлам. Очень быстро устранить незначительную проблему, и вы сможете точно увидеть, что вы развертываете (если, конечно, используете Beyond Compare - иначе забудьте об этом).