Я ищу различные методы / инструменты, которые вы используете для развертывания проекта веб-приложения ASP.NET ( НЕ веб-сайта ASP.NET) в рабочей среде ?
Меня особенно интересует рабочий процесс, происходящий между моментом, когда сервер сборки непрерывной интеграции удаляет двоичные файлы в каком-либо месте, и моментом, когда первый запрос пользователя попадает в эти двоичные файлы.
Вы используете какие-то специальные инструменты или просто XCOPY? Как упаковано приложение (ZIP, MSI, ...)?
Когда приложение развертывается в первый раз, как вы настраиваете пул приложений и виртуальный каталог (вы создаете их вручную или с помощью какого-либо инструмента)?
При изменении статического ресурса (CSS, JS или файл изображения) вы повторно развертываете все приложение или только измененный ресурс? Как насчет изменения страницы сборки / ASPX?
Отслеживаете ли вы все развернутые версии для данного приложения, и в случае, если что-то пойдет не так, есть ли у вас процедуры восстановления приложения до предыдущего известного рабочего состояния?
Не стесняйтесь дополнять предыдущий список.
И вот что мы используем для развертывания наших приложений ASP.NET:
- Мы добавляем в решение проект веб-развертывания и настраиваем его для создания веб-приложения ASP.NET.
- Мы добавляем в решение проект установки ( НЕ проект веб-установки) и настраиваем его на получение выходных данных проекта веб-развертывания.
- Мы добавляем настраиваемое действие установки и в событии OnInstall запускаем сборку .NET настраиваемой сборки, которая создает пул приложений и виртуальный каталог в IIS с помощью System.DirectoryServices.DirectoryEntry (эта задача выполняется только при первом развертывании приложения) . Мы поддерживаем несколько веб-сайтов в IIS, аутентификацию для виртуальных каталогов и настройку идентификаторов для пулов приложений.
- Мы добавляем настраиваемую задачу в TFS для создания проекта установки (TFS не поддерживает проекты установки, поэтому нам пришлось использовать devenv.exe для создания MSI)
- MSI устанавливается на активном сервере (если есть предыдущая версия MSI, она сначала удаляется)