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