当运行Web部署到特定的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站点正常工作,文件同步也正常工作。我以前能够使用Web部署来部署此特定站点而不会出现问题。突然之间,这个问题开始发生,我不能再部署这个网站了。
我正在使用从msbuild构建的包进行基本站点部署。我不认为具体内容是如此重要,因为正如我所说,这一切都在以前工作,并且目前在同一服务器场上的其他网站上工作没有问题。
错误消息显示:
“如果对目的地进行了外部更改,则可能会发生这种情况。”
但是我不确定如何跟踪这个问题,或者甚至是开始时的问题。我确保所有远程会话中的所有资源管理器窗口都已关闭。我已经尝试重新启动网站和应用程序池。我唯一没试过的是重启服务器,这是不可能的。
任何可能导致此Web部署失败的想法?
答案 0 :(得分:29)
我遇到了同样的错误,问题出在我的Dropbox上。 我直接在我的Dropbox文件夹中工作,当你发布时,它会导致dropbox同时同步,从而导致错误。
工作时禁用Dropbox同步解决了问题。
我也可以通过onedrive,谷歌驱动器等解决问题。
答案 1 :(得分:11)
从以前特别部署的服务转换为MSDeploy时,我们遇到了这个问题,并发现如果有文件是
然后我们会在部署时获得“最大同步传递数”错误。
修复属性/ ACL后,我们就可以同步了。
答案 2 :(得分:2)
解决此问题的快捷方法是删除目标中的文件并重新运行Web部署。
该问题似乎围绕着Web部署的ACL步骤,该步骤试图将网站文件的权限更改为旨在确保在部署期间不会更改的安全措施。
默认情况下,Web Deploy会将匿名用户的ACL设置为只读,同时还会覆盖控制面板对您网站的访问权限。
如果你愿意的话,你可以在将来关闭ACL以避免这种情况,但它并不值得。这也将加快Web部署 - 但这是一个单独的问题。
答案 3 :(得分:1)
不是一个真正的答案,但如果您使用的是Web部署dirPath,filePath或contentPath提供商,则可以尝试一种解决方法是ignoreErrors
提供商设置。如果您知道自己始终遇到某个错误编号,则可以指定该错误在被命中时被忽略。有关详细信息(以及警告),请参阅dirPath提供商文章。
答案 4 :(得分:0)
在我的情况下,我无法修复它,但意识到部署无论如何都有效。 如果你正在阅读这篇文章我不会建议它只是假设它有效,如果它确实完全部署,但认为这可能是一个误报!