2008-09-15 4 views
6

В настоящее время мы развертываем веб-приложения, создавая базу данных и запуская SQL-скрипты с помощью анализатора запросов. Затем мы копируем результат с «публикации веб-сайта» и настраиваем этот веб-сайт в IIS.Что может быть хорошим способом развертывания веб-приложений ASP.Net?

Мы видели websetup в визуальной студии, но эта часть, по-видимому, задокументирована. Например, нам не ясно, как спросить пользователя о IP и пароле SQL-сервера. Мы также стремимся к тому, чтобы сайты, развернутые таким образом, подпадают под папки, такие как http://example.com/project, а не только http://example.com.

Устранение неполадок при установке AJAX.Net или некоторых других исправлений.

До сих пор у нас есть физический доступ к серверам. Довольно скоро, хотя мы собираемся отправлять CDROM. Какова практическая компромисс между ручным вмешательством и автоматизацией?

ответ

7

Избегайте развертывания Visual Studio и автоматизируйте как можно больше. Проекты веб-развертывания и NAnt могут быть вашими друзьями!

Вкратце, наша установка развертывания:

  1. Мы используем RedGate SQL различий между сценариев разработчика и живой базы данных.

  2. Файл сборки NAnt, который вызывает MSBUILD для создания проекта веб-развертывания (.wdproj), застегивает результирующее скомпилированное веб-приложение (вместе со сценарием изменения SQL), а затем загружает zip-файл на сервер.

  3. На стороне сервера есть еще один файл сборки NAnt, который отключает приложение, создает резервную копию базы данных, создает резервную копию веб-сайта. запускает скрипт изменения SQL, распаковывает новую версию и приносит приложение в Интернете.

Шаг 3 обычно запускается «вручную» (один двойной щелчок), но иногда назначается на позднюю ночь. Вы можете сделать то же самое с CDROM, или даже написать довольно небольшое приложение Windows Forms в качестве обертки.

Очень рад предоставить детали сценария NAnt, если вам интересно.

2

Вы пытались использовать проект Web Deployment? Существует поддержка для VS 2008 также сейчас.

+1

веб-не помогает мне синхронизировать базы данных. Хорошо, что проект веб-развертывания состоит в том, что он обнаруживает больше ошибок во время сборки. – 2008-09-15 15:10:08

+0

Спасибо за отзыв. В любом случае, я буду держать сообщение здесь. Может быть, полезно для кого-то другого. – 2008-09-15 15:53:56

0

Я развертываю в основном приложения ASP.NET на серверах Linux.Вот мой стандартный рабочий процесс:

  • Я использую репозиторий исходного кода (как Subversion)
  • На сервере, у меня есть Баш скрипт, который выполняет следующие действия:
    • проверяет последнюю версию коды
    • ли сборки (создает DLL)
    • Фильтры файлы вплоть до предметов первой необходимости (удаляет файлы кода, например)
    • резервное копирование базы данных
    • развертывает файлы на веб-сервер в папку с именем с текущей датой
    • обновляет базу данных, если новая схема включается в развертывание
    • делает новую установку по умолчанию один, так что будет подан со следующим хит

заказ делается с версией командной строки Subversion и строительство осуществляется с xbuild (MSBuild работа Двойник из проекта Mono). Большая часть магии выполняется в ReleaseIt.

На моем dev-сервере у меня по существу есть непрерывная интеграция, но на стороне производства я на самом деле SSH на сервер и инициирую развертывание вручную, запустив скрипт. Мой скрипт умно называется «развертыванием», поэтому я вхожу в приглашение bash. Я очень креативен. Не.

В производстве я должен дважды ввести «развернуть»: один раз, чтобы выгрузить, построить и развернуть в датированный каталог и один раз, чтобы сделать этот каталог экземпляром по умолчанию. Поскольку каталоги устарели, я могу вернуться к любому предыдущему развертыванию, просто набрав «deploy» из соответствующего каталога.

Первоначальное развертывание занимает пару минут, а возврат к предыдущей версии занимает несколько секунд.

Это было прекрасное решение для меня и полагалось только на три утилит командной строки (svn, xbuild и release), клиент DB, SSH и Bash.

мне действительно нужно обновить копию ReleaseIt на CodePlex когда-то: проект развертывания

http://releaseit.codeplex.com/