I am using the \"Azure Web App Deployment\" build step in VSTS to publish an ASP.NET Core API to an Azure Web App:
Occasionally, this step breaks with the f
Eddie's answer was close to what I needed, the only thing that was missing was a way to specify the deployment slot:
stopapp.ps1
param($websiteName, $websiteSlot)
$website = Get-AzureWebsite -Name $websiteName -Slot $websiteSlot
Stop-AzureWebsite -Name $websiteName -Slot $websiteSlot
startapp.ps1
param($websiteName, $websiteSlot)
$website = Get-AzureWebsite -Name $websiteName -Slot $websiteSlot
Start-AzureWebsite -Name $websiteName -Slot $websiteSlot
And then on your Azure PowerShell task Script Arguments could be something like this:
-websiteName "{mywebsite}" -websiteSlot "{mydeploymentslot}"
You can create two Power Shell scripts:
stopapp.ps1:
param($websiteName)
$website = Get-AzureWebsite -Name $websiteName
Stop-AzureWebsite -Name $websiteName
startapp.ps1:
param($websiteName)
$website = Get-AzureWebsite -Name $websiteName
Start-AzureWebsite -Name $websiteName
And then add an "Azure PowerShell" task before and after "Azure Web App Deployment" task to stop the web app before deploy and start the app after deploy.
Before you open too many cans of worms on this, wait 30-60 seconds and try publishing your app a second time. It appears that this sometimes happens because the stop request that gets issued to the service either returns before the service has completely stopped or maybe Visual Studio is not waiting long enough for this operation to finish. Each time I've encountered the problem, waiting and retrying the publish worked the second time.
You can restart the Function App to release the lock. After that you should be able to deploy.