Вопрос: Как вы занимаетесь производством веб-сайтов IIS?


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

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


15
2018-05-01 00:50


Источник




Ответы:


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

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

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

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


15
2018-05-01 01:23



Система управления версиями привлекательна, но для веб-сайтов, которые требуют компиляции, это может не сработать слишком хорошо. Разумеется, если скомпилированная версия хранится под контролем версий. - Jonathon Watney
Я никогда не думал о поставке системы управления версиями в производство. Интересные уверенные удары, чтобы сохранить тонны дополнительных файлов zip. - JoshBerke
Я делаю это все время с Subversion. На Apache вы будете использовать mod_rewrite, чтобы убедиться, что пользователи не могут получить доступ к каталогам .svn. Использование управления версиями для развертывания - определенно путь. - Luke


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

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


13
2018-05-01 02:51



+ Бесконечность. Этот инструмент является спасателем и освобождает целые отделы (a la tsilb) для работы над более интересными проблемами. - Portman


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

Проверять, выписываться CruiseControl.NET


4
2018-05-01 01:26





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

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

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


3
2018-05-04 06:49





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

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


1
2018-05-01 02:45