Подтвердить что ты не робот

Постоянное развертывание веб-сайта azurew - Web Deploy не может изменить файл "XXX" в пункте назначения, поскольку он заблокирован внешним процессом

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

Я использую шаблон определения TfvcContinousDeploymentTemplate.12.xaml.

Сообщение об исключении: веб-развертывание не может изменить файл "Antlr3.Runtime.dll" в пункте назначения, поскольку он заблокирован внешним процессом. Чтобы обеспечить успешную работу публикации, вам может потребоваться либо перезапустить приложение, чтобы освободить блокировку, либо использовать обработчик правил AppOffline для приложений .Net при следующей попытке публикации.   Подробнее читайте на http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE. (тип DeploymentDetailedException)

Я сделал то, что было предложено и добавил

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>

в профиль публикации, однако он не помещает приложение в автономный режим, так как я получаю ту же ошибку.

Вот представление моего определения сборки, в котором он настроен на использование профиля публикации в автономном режиме приложения.

enter image description here

4b9b3361

Ответ 1

Вы столкнулись с ограничением Azure и .NET

Рекомендуется перезапустить приложение. Это можно сделать, изменив переменную окружения, которая в свою очередь заставляет iis перезагрузиться.

Например: На ливневой панели azure:

Set COR_ENABLE_PROFILING = 0

затем развернитесь, а затем снова

 Set COR_ENABLE_PROFILING = 1

Описание этой проблемы здесь

Ответ 2

Я знаю, что это старая тема. Но я столкнулся с этой проблемой со своей семьей и решил ее в Лазуре.

Добавьте MSDEPLOY_RENAME_LOCKED_FILES = 1 к вашим настройкам в Azure.

Настройки Azure

Ответ 3

Если вы хотите автоматизировать остановку и запуск Azure App Service до и после развертывания, то, если вы используете VSTS, эта задача теперь доступна из коробки (если вы используете TFS, найдите подсказку с помощью задача рынка в одном из комментариев)

Чтобы использовать эти задачи:

  • В разделе Release VSTS добавьте задачу в свое определение определения типа "Управление Azure App Service (PREVIEW) - запуск, остановка, перезагрузка или замена слотов для службы приложений Azure"
  • В созданной задаче выберите действие (для первой задачи выберите "Остановить службу приложения" )
  • Перетащите эту задачу перед задачей развертывания и добавьте задачу "Запустить службу приложения" за задачей развертывания.
  • В настройках задачи вы также можете проверить, что это применяется только к определенному слоту службы приложений Azure (например, "Этап" ).

После настройки этих двух дополнительных задач он работал нормально для меня.

(... Кстати, VSTS Build и CI теперь также поддерживают сборки ASP.NET CORE, выполненные с помощью VS2017, выбрав агент "HOST VS 2017" )