Итак, не уверен, что это вопрос о переполнении стека или сбое сервера. Если у меня есть веб-сайт .NET, который я хочу развернуть в производственной среде, как лучше всего это сделать? Следует ли мне упаковать его как MSI и установить? Используйте nant, чтобы подтолкнуть нужные файлы вверх. Просто загрузите файлы по FTP с помощью Beyond Compare?
Как вы развертываете производственный код? Я рассматриваю здесь конкретный случай Windows.
IIS поддерживает развертывание xcopy, поэтому вам достаточно простого копирования файлов, если у вас нет особых требований.
Один из способов сделать это - простой скрипт, который использует РОБОКОПИЯ для копирования новых файлов на сервер.
Если сайт большой и это занимает слишком много времени, используйте систему контроля версий. мне нравиться Mercurial для этой цели, хотя вы должны быть осторожны, чтобы файлы конфигурации системы контроля версий в конечном итоге не стали общедоступными. Развертывание - это просто вопрос фиксации изменений и последующей проверки последней версии на сервере. Помимо эффективности, это позволяет выполнять быстрый откат (если вы отметили последнюю хорошую версию) в случае, если ваша последняя и самая лучшая версия содержит ошибку showstopper.
Чтобы свести к минимуму время простоя, вы можете заставить сценарий копировать файлы в новый каталог, а затем быстро переименовывать каталоги или изменять место, где IIS указывает на новый каталог.
Рассмотрите возможность использования Инструмент веб-развертывания от Microsoft. Он был специально разработан, чтобы помочь развертывать веб-приложения и обновления этих веб-приложений на рабочих веб-серверах IIS 6 и 7, и он лучше справляется с этой задачей, чем MSI (установщик Windows), IMHO.
Обычно вы используете его, создавая где-нибудь «золотой мастер» сайт, а затем приказывая инструменту упаковать изменения оттуда. Затем он рассмотрит целевой сервер для развертывания и внесет все необходимые изменения, чтобы он выглядел как золотой мастер (что полезно для последующих обновлений). Это особенно полезно, если вы развертываете более чем один веб-сервер (например, ферму), и он поддерживает развертывание не только файлов (он также может обрабатывать внесение изменений в реестр, развертывание сертификатов, баз данных SQL и т. Д.).
Я бы продолжил ответ Джоэла, предложив серверу непрерывной интеграции забрать ваши изменения из вашей системы управления версиями. Затем он построит проект. Затем попросите его скопировать результат сборки в новую папку. Затем вы можете быстро изменить конфигурацию (web.config и app.config). Вуаля, готов к Xcopy!
Проверять, выписываться CruiseControl.NET
То, что я делал у своего предыдущего работодателя, который, по сути, был сайтом аукциона / электронной коммерции, где мы не могли допустить длительного простоя:
Как веб-разработчик, есть много забавных вещей. Но это была самая важная часть моей работы.
о боже, на работе у нас есть целая команда для этого. У них есть собственный инструмент, который извлекает сервер из кластера / фермы, публикует файлы, запускает NUnits и добавляет их обратно в кластер / ферму. Они делают это для каждого из 16 серверов. На это уходит часы. Остальные из нас даже не имеют доступа к осмотру.
В своих личных проектах я публикую из VS2005 прямо на свой веб-сервер. У Kinda менее строгая охрана.