类似的问题已被问过多次,但大多数答案都是旧的,并且可能只部分适用。此问题特定于使用“Azure 应用服务部署”任务版本 3.* 通过 Azure DevOps/Azure Pipelines 使用 Web 部署。
无法将 Web 包部署到应用服务。
尝试在选择重命名锁定文件选项的情况下再次部署应用程序服务。
错误代码:ERROR_FILE_IN_USE
更多信息:Web 部署无法修改目标上的文件“VBCSCompiler.exe”,因为它已被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布时使用 .Net 应用程序的 AppOffline 规则处理程序
试图。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.
那里有两个建议:
- 选择“重命名锁定文件”选项
- 重新启动应用程序
- 使用AppOffline规则
此外,文档 https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/AzureRmWebAppDeploymentV3/README.md针对这项任务,重申了建议 1 和 3。
为了避免部署失败并出现错误代码 ERROR_FILE_IN_USE,如果 .NET 应用程序面向 Windows 上的 Web 应用程序,请确保启用“重命名锁定文件”和“使应用程序脱机”。对于零停机部署,请使用插槽交换。
However, these recommendations are already in place.
剩下的就是建议 2:重新启动服务。由于多种原因,我不想再回到这个问题上。
为什么1和3不足以成功完成部署?
我与 Microsoft 支持代表交谈,被告知“重命名锁定文件”仅适用于 DLL。
但我确实找到了一个对我有用的解决方案。在“其他参数”中,我添加了“-useChecksum”。所以“部署 Azure 应用服务”任务现在看起来像这样
从那以后我就没有遇到任何问题了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)