This post describes how to fix the error, where when publishing Azure Functions or Azure App Services you get an error like this: “Web Deploy cannot modify the file on the Destination because it is locked by an external process.”
This is luckily another straightforward fix!
Azure Function Publish fails with a message:
“Web Deploy cannot modify the file on the Destination because it is locked by an external process.”
It is, indeed, caused by some of your files at the target of your publishing being in use, so they cannot be overwritten. Great – an actually accurate error message! Much appreciated.
This seems to apply to Azure Functions CLI versions 2.x (currently in beta), and not for the stable versions. At least that’s the state at the time of writing this. There’s even this unresolved issue open about it on GitHub.
The obvious choice is always to just restart the app service. But if the issue exists every single time when you’re trying to deploy your changes to the server, especially in your development environment, and even more so, if it fails your automated deployments, this solution is cumbersome and boring.
Luckily, you can also just modify the application settings to instruct MSDeploy to rename the files it can’t overwrite – it usually solves this issue! There are 2 ways to do that, whis is kind of nice:
Solution 1: Edit the application settings at the target of your publishing
This one’s nice and simple – just navigate to your Azure Function’s/App Service’s application settings, and add the following key-value pair:
MSDEPLOY_RENAME_LOCKED_FILES = 1
It should look like this:
After this, the next web deploy you try, should work just fine!
Solution 2: Edit the publishing settings for MSDeploy
You can also edit this setting for MSDeploy directly. In case you’re using Visual Studio for development, you can access the settings by clicking “Publish” on your project, and then clicking “Manage application settings” in the new window.
And you should be good!
Check out this article by the Kudu team – they explain the issue quite well: https://github.com/projectkudu/kudu/wiki/Dealing-with-locked-files-during-deployment
Latest posts by Antti K. Koskela (see all)
- SharePoint Localization – a (somewhat) comprehensive how-to! - July 18, 2018
- How to enable custom scripts for a SharePoint site collection? - July 16, 2018
- Fixing issue “AADSTS70005” by enabling the implicit authentication flow for your Azure AD app - July 11, 2018
- How to show more than 30 categories in SharePoint blog/news sites? - July 9, 2018