VSTS - Take app offline before deployment

こ雲淡風輕ζ 提交于 2019-12-04 04:39:47

问题


I'm getting this problem using VSTS continuous deployment to azure

Web Deploy cannot modify the file 'XXX' on the destination because it is locked by an external process

the solution provided in this thread is to manually restart my app in azure, however he's not using VSTS and the question was asked 2 years ago, is this issue fixed on the current VSTS and if so, I would like to know how because I'm having the same problem as the link referenced above.

Thanks


回答1:


You can use "EnableMSDeployAppOffline" feature to set your app offline before deployment by following the instruction here: Web publishing updates for app offline and usechecksum.

If it does not work, you can also create a PowerShell script as following to stop the app, deploy and then restart the app:

    param($websiteName, $packOutput)

    $website = Get-AzureWebsite -Name $websiteName

    # get the scm url to use with MSDeploy.  By default this will be the second in the array
    $msdeployurl = $website.EnabledHostNames[1]


    $publishProperties = @{'WebPublishMethod'='MSDeploy';
                            'MSDeployServiceUrl'=$msdeployurl;
                            'DeployIisAppPath'=$website.Name;
                            'Username'=$website.PublishingUsername;
                            'Password'=$website.PublishingPassword}

    Write-Output "Stopping web app..."
Stop-AzureWebsite -Name $websiteName

Write-Output "Publishing web app..."
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"

. $publishScript -publishProperties $publishProperties  -packOutput $packOutput

Write-Output "Starting web app..."
Start-AzureWebsite -Name $websiteName

PowerShell Script from: Build and Deploy your ASP.NET 5 Application to an Azure Web App.




回答2:


Essentially you need to stop - deploy - restart .

You have many options to do it but to more easy would be:

1- Extention: Azure App Services - Start and Stop you can try the extension "Azure App Services - Start and Stop" https://marketplace.visualstudio.com/items?itemName=rbengtsson.appservices-start-stop

2- AzureCLI task From the build or Deployment windows Add am Azure CLI task (currently in Preview)

Add one before the Deployment task with Inline script:

azure webapp stop --resource-group NAME_OF_YOUR_RESOURCE_GROUP --name WEBAPP_NAME

Add another one after the Deployment task with Inline script:

azure webapp start --resource-group NAME_OF_YOUR_RESOURCE_GROUP --name WEBAPP_NAME

I hope that help.



来源:https://stackoverflow.com/questions/37234007/vsts-take-app-offline-before-deployment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!