类似的问题已经问了很多遍了,但是大多数答案都是过时的,可能仅部分适用。此问题特定于使用“ Azure App Service Deploy”任务版本3 *通过Azure DevOps / Azure Pipelines使用Web Deploy。
无法将Web包部署到App Service。
尝试在选中重命名锁定的文件选项的情况下再次部署应用程序服务。
错误代码:ERROR_FILE_IN_USE
更多信息:Web Deploy无法在目标上修改文件“ VBCSCompiler.exe”,因为它已被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下一次发布时对.Net应用程序使用AppOffline规则处理程序。 尝试。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE。
这里有两个建议:
此外,该任务的the documentation一起重申了建议1和3。
为了避免错误代码为ERROR_FILE_IN_USE的部署失败,如果.NET应用程序针对Windows上的Web App,请确保启用了“重命名锁定的文件”和“使应用程序脱机”。对于零停机时间部署,请使用插槽交换。
剩下的就是建议2:重新启动服务。由于许多原因,我宁愿不必退后一步。
为什么1和3不足以成功完成部署?
答案 0 :(得分:1)
我与Microsoft支持代表进行了交谈,并被告知“重命名锁定的文件”仅适用于DLL。
但是我确实找到了对我有用的解决方案。在“其他参数”中,我添加了“ -useChecksum”。因此,“ Deploy Azure App Service”任务现在看起来像这样
此后我没有任何问题。
答案 1 :(得分:0)
这里跟踪到一个问题:Azure App Service Deploy fails for .net core 2.0 with ERROR_FILE_IN_USE,基于 vincentdass的注释“ PR #8457”,它根据Web Deploy团队的建议使用了新版本的MSDeploy。 / em>。”将来的版本中将对msdeploy进行升级。
但是,您只能检查Publish Using Web Deploy
和Rename Locked Files
,然后创建一个新部署。重新部署不会起作用,因为它不会占用您对发布定义的更改。
参考以下主题,您可以检查有关此问题的讨论并进行相应的故障排除。