Как развернуть приложение в IIS во время работы этого веб-приложения - PullRequest
1 голос
/ 16 апреля 2011

Там, где я работаю, мы выпускаем исправления ошибок в системе каждую ночь, когда мы знаем, что наши клиенты не используют систему.

Пытаясь сделать шаг к лучшему обслуживанию, я хотел бы развернуть его в IIS во время работы приложения.

Решение, которое приходит на ум, - это настроить два разных приложения IIS и переключать их после развертывания с помощью сценария. Но я не собираюсь испытывать это, так как не хочу никаких осложнений в наше напряженное время.

Кто-нибудь имеет опыт в этой области развертывания?

Спасибо

1 Ответ

3 голосов
/ 16 апреля 2011

Независимо от того, используете ли вы PHP, ASP, ASP.NET и т. Д., Встроенная поддержка развертывания транзакций в IIS отсутствует.

Самый простой подход состоит в том, чтобы иметь на своем веб-сервере две физические папки и (необязательно два веб-сайта - один рабочий, один тестовый), например:

c:\websites\myapp\dep1  
c:\websites\myapp\dep2

Первоначально ваш сайт будет иметь физический путь, указывающий на c:\websites\myapp\dep1.

Когда вы развертываете свою последнюю сборку, вы развертываете в c:\websites\myapp\dep2. Когда вы закончите, просто переключите физический путь к производственному сайту в эту папку. Это означает, что у вас все еще есть исходный сайт, и вы можете вернуться к нему, если по какой-либо причине новый код не будет работать.

В следующий раз, когда вы выполните развертывание, вы развернете в c:\websites\myapp\dep1 и после этого переключите рабочий сайт в эту папку.

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

Это все может быть написано в сценарии.

Вот некоторые связанные материалы, которые могут представлять интерес:

Публикация / загрузка новой DLL в IIS: веб-сайт не работает во время загрузки

Возможно ли плавное развертывание с компонентными приложениями ASP.NET MVC?

Роб Конери также написал отличный пост в блоге об отсутствии достойной истории развертывания приложения ASP.NET. Вы должны пройтись по комментариям, некоторые из которых довольно проницательны:

Необходимо исправить развертывание ASP.NET

Создание конструктивного подхода к развертыванию ASP.NET

...