Azure Web App deploy: Web Deploy cannot modify the

2019-03-12 22:35发布

I am using the "Azure Web App Deployment" build step in VSTS to publish an ASP.NET Core API to an Azure Web App:

Azure Web App Deployment

Occasionally, this step breaks with the following error:

[error]Microsoft.Web.Deployment.DeploymentDetailedClientServerException: Web Deploy cannot modify the file 'MyProject.Api.exe' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.

This GitHub issue raises the same issue, but there is no suggested solution using the Azure Web App Deployment build step.

9条回答
等我变得足够好
2楼-- · 2019-03-12 22:57

There are some dedicated tasks for asp.net core projects because the deployment process is a little bit different.
You can get those from the marketplace for free, check out DNX Tasks vsts marketplace
Hope that helps!!

查看更多
趁早两清
3楼-- · 2019-03-12 22:57

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}"
查看更多
Evening l夕情丶
4楼-- · 2019-03-12 22:58

Taking website offline while release should do the trick.

enter image description here

查看更多
虎瘦雄心在
5楼-- · 2019-03-12 23:01
  1. Stop app service
  2. deploy code
  3. Start app service

enter image description here

查看更多
beautiful°
6楼-- · 2019-03-12 23:03

As per a separate thread in the Microsoft Github repo here, there's a hacky workaround where if you add the following key to the Azure Appsettings, it can help resolve the locked file deployment error:

MSDEPLOY_RENAME_LOCKED_FILES = 1

I'm not sure how long this appsetting hack will be supported, but it did help solve the issue for me personally.

enter image description here

查看更多
三岁会撩人
7楼-- · 2019-03-12 23:12

I was getting the same error while I was trying to publish my Azure Function App. I followed this Microsoft document and did the following steps.

  1. Right click on your Project and select Edit ....csproj
  2. Add <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline> in PropertyGroup tag

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <AzureFunctionsVersion>v2</AzureFunctionsVersion>
      <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
    </PropertyGroup>
    
  3. Save and Rebuild your solution

  4. Now publish again

If that didn't work for you, you can always add MSDEPLOY_RENAME_LOCKED_FILES=1 as Mr. Ben mentioned in his answer, to your Application settings. You can do that from Visual Studio itself.

enter image description here

enter image description here

Hope it helps

查看更多
登录 后发表回答