Azure App Service Deploy:ERROR_FILE_IN_USE(即使使用 Take App Offline + Rename locked files + restarted App service)

Azure App Service Deploy: ERROR_FILE_IN_USE (even with Take App Offline + Rename locked files + restarted App service)

Azure 应用服务部署:ERROR_FILE_IN_USE(即使使用应用离线 + 重命名锁定文件 + 重新启动应用服务)

错误: 无法将 Web 包部署到应用服务。 [调试]已处理:##无法将 Web 包部署到应用服务。 [调试]System.DefaultWorkingDirectory= [警告]尝试重新部署应用程序服务并选中重命名锁定的文件选项。 [调试]已处理:尝试再次部署应用程序服务并选中重命名锁定文件选项。 [错误]错误代​​码:ERROR_FILE_IN_USE 更多信息:Web 部署无法修改目标上的文件 'xyz.pdb',因为它已被外部进程锁定。为了允许发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布尝试时使用 .Net 应用程序的 AppOffline 规则处理程序。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE. Learn more at: https://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE。 错误计数:1.

按照错误消息中的建议解决问题,显而易见的选择始终是重新启动应用程序服务。

但是如果问题每次都存在,尤其是在您的开发环境中。那么您可以使用以下步骤来解决这个问题:

您可以修改应用程序设置以指示 MSDeploy 重命名它无法覆盖的文件 – 通常可以解决此问题。

有两种方法可以做到这一点:

解决方案 1:编辑发布目标的应用程序设置:

  • 导航到您的 Azure 应用服务的应用程序设置,并添加以下 key-value 对:

    MSDEPLOY_RENAME_LOCKED_FILES = 1

它应该如下所示:

解决方案 2:编辑 MSDeploy 的发布设置:

您也可以直接为 MSDeploy 编辑此设置。 如果您使用 Visual Studio 进行开发,您可以通过单击项目上的“发布”来访问设置,然后在新的 window.

中单击“管理应用程序设置”

选择可能会有所不同,具体取决于 Visual Studio 版本和您要发布的项目类型。下面是另一个例子:

在任何情况下,通过单击 link 来管理应用程序(服务)设置,您将进入这样的 window,您可以在其中通过单击“添加设置”添加”:

并添加新设置,如下所示: