章鱼部署

时间:2019-01-08 12:25:10

标签: azure octopus-deploy octopus

我们正在使用Octopus部署将其部署到Azure。我们已经使用一年多了,突然之间(大约3周前)我们开始发现一些部署错误。

  

Microsoft.Web.Deployment.DeploymentDetailedClientServerException:Web Deploy无法修改目标上的文件“ msvcr120.dll”,因为它已被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下一次尝试发布时对.Net应用程序使用AppOffline规则处理程序。要了解更多信息,请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE

我们有一个始终运行的Web应用程序,并且我们将应用程序设置'MSDEPLOY_RENAME_LOCKED_FILES'设置为1,从理论上讲可以防止这种情况。

有人知道天蓝色或章鱼有变化吗?

1 个答案:

答案 0 :(得分:0)

在部署过程中,文件可能被锁定的原因有很多。您应该能够通过使用kudu process explorer来了解什么是锁定文件,可以使用URL {yoursite}.scm.azurewebsites.net来访问文件。

为了完全避免锁定问题,如果可以的话,您可以利用插槽来实现零停机时间部署。在这种情况下,您可以停止站点或启用App Offline,这应解锁任何文件并允许部署成功,然后通过插槽交换使部署生效。与使用App Offline相比,首选MSDEPLOY_RENAME_LOCKED_FILES,但是在部署过程中会使应用程序脱机。章鱼在Deploy an Azure Web App步骤本身上也对此选项提供了支持,因此即使没有插槽也可能值得尝试。

您可以在Deploy an Azure Web App中使用自定义的前/后部署脚本,以利用Stop-AzureRmWebAppSlotStart-AzureRmWebAppSlotSwitch-AzureRmWebAppSlot Powershell commands Azure Commandlet实现以上。

一种替代方法是使用zip部署,但是Deploy an Azure Web App章鱼步骤尚未对此提供一流的支持。如果您要这样做,仍然可以使用Run an Azure PowerShell Script和包引用来实现。