我正在开发Azure功能项目,当我第一次发布时,好的。 然后我再次发布,出现此错误:
Web Deploy无法修改文件' FunctionApp5.dll'在...上 目的地,因为它被外部进程锁定。为了 允许发布操作成功,您可能需要重新启动 您的应用程序释放锁定,或使用AppOffline规则 下次发布尝试时.Net应用程序的处理程序。学习 更多: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE
它仅在我进入Azure门户网站时发布,并重新启动此Azure功能应用程序
答案 0 :(得分:38)
设置
MSDEPLOY_RENAME_LOCKED_FILES=1
Azure功能应用程序设置中的通常解决此问题
这也可以在Publish上的Visual Studio中完成 - >应用程序设置:
答案 1 :(得分:2)
更新后的响应:以下是一些文档,介绍了锁定文件时可以采取的步骤(除了手动重启应用程序之外)。 https://github.com/projectkudu/kudu/wiki/Dealing-with-locked-files-during-deployment
答案 2 :(得分:2)
我的Azure Function在V2中,并被FILE_IN_USE锁定。
对此有一个未解决的问题: https://github.com/Azure/azure-functions-host/issues/569
根据9月6日Paul Batum的评论:
“在Function V2中,没有卷影复制行为(因为它在.NET Core中不存在),因此更有可能遇到锁定问题。但是,我们已经实现了对通过以下方式提供的“使应用程序脱机”功能的支持msdeploy。“
所以我检查了使应用程序脱机并尝试了,并且在重新部署时文件未锁定。
答案 3 :(得分:1)
遵循此article,您还可以尝试在Web Deploy pubxml中添加此指令,以指示在部署时使Function应用程序脱机:
<EnableMsDeployAppOffline>True</EnableMsDeployAppOffline>
答案 4 :(得分:1)
在撰写本文时,如果您正在使用Azure DevOps(VSTS)部署应用程序,则可以在“ Azure App Service Deploy”任务/步骤中选择“从程序包运行”-版本4中提供了此功能。任务的“其他部署选项”节点下。
此部署选项消除了文件锁定问题,因为它提供了原子性,因为该应用程序指向新的zip文件,而不是在wwwroot下部署一堆散乱文件,其中一些可能已锁定。
如here所述,它还为您提供了许多其他好处。
HTH
答案 5 :(得分:0)
我只需要重新启动我的服务器, 并再次手动部署, 这次部署成功了!
答案 6 :(得分:-1)