Развернуть синхронизацию: превышено максимальное количество проходов синхронизации "5"

При запуске веб-развертывания на конкретный сайт IIS возникает следующая ошибка:

Error: The synchronization is being stopped because the maximum number of sync passes '5' has been exceeded even though all the changes could not be applied. This could occur if there are external changes being made to the destination.
 At C:\Code\.....\deploy.ps1:185 char:10
 +         & <<<< ($appDeployCmd) $type /M:$url /U:$user /P:$pass /A:Basic -allowUntrusted -useCheckSum
 + CategoryInfo          : NotSpecified: (Error: The sync...he destination.:String) [], RemoteException
 + FullyQualifiedErrorId : NativeCommandError

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

Я развертываю базовый сайт с пакетом, созданным из msbuild. Я не думаю, что особенности важны, потому что, как я уже сказал, все это работало до этого и в настоящее время работает с другими сайтами на одной ферме серверов без проблем.

В сообщении об ошибке говорится:

"Это может произойти, если в пункт назначения внесены внешние изменения."

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

Любые идеи, что может привести к сбою этого веб-развертывания?

Ответ 1

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

Отключение синхронизации Dropbox во время работы устраняет проблему.

Я понимаю, что проблема также может произойти с onedrive, google drive и т.д.

Ответ 2

Мы столкнулись с этой проблемой при переходе от ранее развертывания adhoc-сервиса к MSDeploy и обнаружили, что если есть файлы, которые были либо

тогда мы получим ошибку "Максимальное количество ошибок синхронизации" при развертывании.

Как только мы исправили атрибуты /ACL, мы смогли синхронизировать.

Ответ 3

Быстрый и простой способ решить эту проблему - удалить файлы в месте назначения и повторно запустить развертывание в Интернете.

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

По умолчанию Web Deploy устанавливает ACL анонимного пользователя на чтение только при перезаписи доступа к панели управления на ваш веб-сайт.

Источник

Вы можете включить ACL в будущем, чтобы избежать этого, если хотите, но это действительно не стоит. Это также ускорит развертывание в Интернете - но это отдельная проблема.

Ответ 4

На самом деле не ответ, но один обходной путь вы можете попробовать, если используете веб-развертывание dirPath, filePath или контент-провайдер - это параметр поставщика ignoreErrors. Если вы знаете, что вы постоянно нажимаете на определенный номер ошибки, вы можете указать, что эту ошибку следует игнорировать при ее ударе. См. Статью поставщика dirPath для получения полной информации (и оговорок).

Ответ 5

В моем случае я не мог исправить это, но понял, что развертывание работает независимо. Если вы читаете это, я бы не предложил просто предположить, что он сработал, и если он сделал это, он развернулся полностью, но подумайте, что это может быть ложный сигнал!