Azure功能:发布失败并显示消息" Web Deploy无法修改目标上的文件,因为它已被外部进程锁定。"

时间:2018-01-18 20:42:58

标签: azure-functions

我正在开发Azure功能项目,当我第一次发布时,好的。 然后我再次发布,出现此错误:

  

Web Deploy无法修改文件' FunctionApp5.dll'在...上   目的地,因为它被外部进程锁定。为了   允许发布操作成功,您可能需要重新启动   您的应用程序释放锁定,或使用AppOffline规则   下次发布尝试时.Net应用程序的处理程序。学习   更多:   http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE

它仅在我进入Azure门户网站时发布,并重新启动此Azure功能应用程序

Azure Portal and Visual Studio 2017

7 个答案:

答案 0 :(得分:38)

设置

MSDEPLOY_RENAME_LOCKED_FILES=1 
Azure功能应用程序设置中的

通常解决此问题

Configure

这也可以在Publish上的Visual Studio中完成 - >应用程序设置:

Application Settings

答案 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中提供了此功能。任务的“其他部署选项”节点下。

Run From Package

此部署选项消除了文件锁定问题,因为它提供了原子性,因为该应用程序指向新的zip文件,而不是在wwwroot下部署一堆散乱文件,其中一些可能已锁定。

here所述,它还为您提供了许多其他好处。

HTH

答案 5 :(得分:0)

我只需要重新启动我的服务器, 并再次手动部署, 这次部署成功了!

答案 6 :(得分:-1)

转到Azure中的“功能”选项卡,然后按“重新启动”按钮。然后尝试在Visual Studio中再次发布。 有时关闭浏览器并再次打开它或者这些东西的组合是必要的。

这就是你需要做的一切。 enter image description here