Как вы работаете с продукцией IIS?

Так что не уверен, что это переполнение стека или ошибка сервера. Если у меня есть веб-сайт.NET, который я хочу развернуть в производственной среде, как это лучше всего сделать. Должен ли я упаковать его как MSI и установить? Используйте Nant, чтобы подтолкнуть нужные файлы вверх. Просто FTP файлы с использованием Beyond Compare?

Как вы развертываете производственный код? Это особый случай для Windows, который я рассматриваю здесь.

5 ответов

Решение

IIS поддерживает развертывание xcopy, поэтому достаточно просто скопировать файлы, если у вас нет особых требований.

Один из способов сделать это - простой скрипт, который использует ROBOCOPY для копирования новых файлов на сервер.

Если сайт большой и занимает слишком много времени, используйте систему контроля версий. Мне нравится Mercurial для этой цели, хотя вы должны быть осторожны, чтобы файлы конфигурации системы контроля версий не были предоставлены общественности. Развертывание - это просто принятие изменений и проверка последней версии на сервере. В дополнение к эффективности, это позволяет выполнять быстрые откаты (если вы пометили последнюю хорошую версию) в случае, если ваш последний и самый лучший имеет ошибку showtopper.

Чтобы свести к минимуму время простоя, вы можете сделать так, чтобы скрипт копировал файлы в новый каталог, а затем быстро переименовывал каталоги или изменял место, где IIS указывает на новый каталог.

Подумайте об использовании Web Deployment Tool от Microsoft. Он был специально разработан для развертывания веб-приложений и обновлений этих веб-приложений на рабочих веб-серверах IIS 6 и 7 и лучше справляется с этой задачей, чем MSI (установщик Windows), IMHO.

Обычно вы используете его, когда-то настраиваете сайт "master-gold", а затем говорите инструменту, чтобы он упаковывал изменения оттуда. Затем он будет искать целевой сервер для развертывания и вносить любые изменения, необходимые для того, чтобы он выглядел как "золотой мастер" (что полезно для последующих обновлений). Это особенно полезно, если вы развертываете более чем на один веб-сервер (например, ферму) и поддерживает развертывание не только файлов (оно также может обрабатывать внесение изменений в реестр, развертывание сертификатов, баз данных SQL и т. Д.).

Далее я бы ответил на вопрос Джоэла, предложив серверу непрерывной интеграции забрать ваши изменения из вашей системы контроля версий. Затем он будет строить проект. Затем скопируйте вывод сборки в новую папку. Затем вы можете сделать некоторые быстрые изменения конфигурации (web.config и app.config). Вуаля, готов к Xcopy!

Проверьте CruiseControl.NET

То, что я делал у моего предыдущего работодателя, который был в основном сайтом аукциона / электронной коммерции, где мы не могли допустить большого простоя:

  • Возьмите версию сборки / версию на молнии для развертывания на сервере сборки
  • Протестируйте его на промежуточном сервере, который имеет копию рабочей базы данных и имеет ту же версию программного обеспечения, что и производственное программное обеспечение. Проверьте, чтобы все прошло гладко. Если нет, перезапустите развертывание промежуточного сервера (но сначала восстановите резервную копию).
  • Если все прошло хорошо: скопируйте сценарии сборки и обновления базы данных на рабочий сервер в локальную папку. Сделайте конкретную резервную копию базы данных и файлов ASP.NET (на случай, если что-то все равно пойдет не так). Подготовьте все, так что мне нужно только нажать Enter, чтобы запустить скрипт обновления и копирование файлов базы данных (обратите внимание, что я мог бы создать скрипт для этого). Тогда запусти все. Обычно это занимает считанные секунды, и пользователи не заметят, что было время простоя.

Там, как веб-разработчик, есть много забавных вещей. Но это была самая важная часть моей работы.

О боже, на работе у нас есть целая команда для этого. У них есть собственный инструмент, который выводит сервер из кластера / фермы, публикует файлы, запускает NUnits и добавляет его обратно в кластер / ферму. Они делают это для каждого из 16 серверов. Это занимает часы. У остальных из нас даже нет "осмотра доступа".

Для моих личных проектов я публикуюсь с VS2005 непосредственно на мой веб-сервер. У Кинды менее строгая безопасность.

Другие вопросы по тегам