Использование app_offline с TFS2015 RM

Я нахожусь в процессе настройки непрерывного развертывания в IIS с использованием TFS 2015 RM и хотел перевести приложение в автономный режим перед развертыванием. После небольшого исследования нашли хорошие посты по достижению этого через файл app_offline.htm со следующими шагами.

  1. Создание файла "app_offline.htm" в "корне" веб-сайта, но с другим именем (app_offline.htm_), чтобы избежать отладки или связанных с этим проблем.
  2. Перед развертыванием переименуйте файл обратно в "app_offline" и поместите его в конечное веб-приложение.
  3. После развертывания мы удаляем файл из целевого веб-приложения.

В настоящее время я включил задачу "Копирование файлов Windows Machine" для копирования двоичных файлов сборки вместе с "app_offline.htm_" в целевое веб-приложение и задачу "Удалить файлы" для ее удаления после развертывания.

Теперь все, что я хочу понять, это как переименовать файл обратно в app_offline.htm перед развертыванием. Помощь по этому вопросу будет принята с благодарностью!

2 ответа

Решение

Есть много способов сделать это:

  1. Использование сценария PowerShell (например, Rename-Item) через PowerShell на целевых машинах (переименование файла на удаленном компьютере) или PowerShell (переименование файла на компьютере агента сборки) шаг / задача
  2. Разверните веб-приложение с помощью шага / задачи Развертывание веб-приложения WinRM-IIS с опцией " Отключить приложение". (Установите развертывание IIS Web App с помощью расширения WinRM)
  3. Повторно скопируйте все файлы (включая app_offline.html) на целевой компьютер с помощью параметра " Копирование файлов Windows Machine с чистой целью".

Мне не понравилось ни одно из принятых решений ответа. Главным образом потому, что все они связаныWinRMдля этого требуется, чтобы порты были открыты на сервере, и я просто не хочу разговаривать с специалистом по инфраструктуре, поскольку открытие портов вызывает у него стресс.

Также, если вы используетеcleanвариант наCopy Files taskон оставляет ноль файлов вInetpubпапку буквально на секунду — любые запросы в этот момент выдадут 404 или вообще взорвутся.

я поставил 3Copy Files tasksфункции в моем конвейере сборки.

  1. Чтобы скопировать файл в папку.
  2. Сделать оригинальную копию сборки со всеми основными файлами сайта.
  3. Чтобы скопироватьapp_offline.htmс нулевыми байтами поверх первого.

Затем на сервере работает служба - можно сделатьfilewatcherили я только что опросил его, но когда этот файл имеет нулевые байты - выбросьте его.

Очень обидно, чтоmsbuild agent.exeна сервере ничего не может делать, кроме как "копировать файлы"

Другие вопросы по тегам