TeamCity использует MSDEPLOY ERROR_FILE_IN_USE - PullRequest
0 голосов
/ 18 мая 2018

У меня есть приложение ASP.NET 4.6.1, которое я пытаюсь развернуть на удаленном веб-сервере с помощью TeamCity и MSBuild.Ниже приведен шаг сборки MSBuild в TeamCity.

enter image description here

Когда я запускаю сборку в TeamCity, на этом шаге сборки всегда происходит ошибка с FILE_IN_USE_ERROR.Библиотеки DLL, которые обновляются до появления ошибки, обычно одинаковы, но иногда они отличаются.

[вывод MSBuild] Информация: файл обновления (MyApp \ bin \ roslyn \ Microsoft.VisualBasic.Core.цели).[10:35:23]

[вывод MSBuild] Информация: файл обновления (MyApp \ bin \ roslyn \ System.AppContext.dll).[10:35:23]

[вывод MSBuild] Информация: файл обновления (MyApp \ bin \ roslyn \ System.Collections.Immutable.dll).[10:35:23]

[вывод MSBuild] MSDEPLOY: код ошибки: ERROR_FILE_IN_USE [C: \ BuildAgent \ work \ b89cd3dfa447b \ MyApp \ MyApp.csproj]

I 'Мы уже прочитали много статей ( здесь , здесь , здесь и здесь ), предлагая мне удалить файл app_offline.htm перед тем, какразвертывание, чтобы IIS мог перенаправлять трафик и проблемы с блокировкой файлов прекратились.Я попробовал это, и это не работает.Я все еще получаю проблемы с использованием файла на этом этапе сборки.

Я также читал во многих других обсуждениях, что другим решением является остановка пула приложений, развертывание обновлений приложений и запуск пула приложений.Это нереалистичное решение, поскольку развертывание обычно длится от 15 до 20 минут.Кроме того, это не позволяет мне показывать приятные сообщения всем текущим пользователям.

Я уже некоторое время читал об этом, и похоже, что это распространенный вариант использования для развертывания в IIS.веб сервер.Разве это не должно работать без блокировки файлов?Кто-нибудь знает какие-либо другие решения этой проблемы?

1 Ответ

0 голосов
/ 10 сентября 2018

Я бы попытался остановить пул приложений, чтобы узнать, является ли это основной причиной проблемы.

Но я не уверен, почему он не работает в файле .csproj, потому что обычно вы не развертываете его на сервере.Таким образом, либо происходит сбой в другом файле (который на самом деле используется веб-приложением), либо происходит сбой во время сборки, а не развертывания (чем остановка пула приложений не повлияет).

...