web-dev-qa-db-fra.com

Fonction Azure: la publication échoue avec le message "Web Deploy ne peut pas modifier le fichier sur la destination car il est verrouillé par un processus externe."

Je développe un projet Azure Functions et lors de ma première publication, OK. Ensuite, je publie à nouveau, cette erreur apparaît:

Web Deploy ne peut pas modifier le fichier 'FunctionApp5.dll' sur la destination car il est verrouillé par un processus externe. Pour permettre à l'opération de publication de réussir, vous devrez peut-être redémarrer votre application pour libérer le verrou ou utiliser le gestionnaire de règles AppOffline pour les applications .Net lors de votre prochaine tentative de publication. En savoir plus sur: http://go.Microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE .

Il ne publie que si j'entre dans le portail Azure et redémarre cette application de fonction Azure

Azure Portal and Visual Studio 2017

33
Tony

Ensemble

MSDEPLOY_RENAME_LOCKED_FILES=1 

dans les paramètres d'application de fonction Azure résolvait généralement ce

Configure

Cela peut également être fait dans Visual Studio sur Publier -> Paramètres d'application:

Application Settings

48
Tony

Ma fonction Azure est en V2 et a été verrouillée avec FILE_IN_USE.

Il y a un problème ouvert à ce sujet: https://github.com/Azure/azure-functions-Host/issues/569

Selon le commentaire de Paul Batum du 6 septembre:

"Dans Functions V2, il n'y a pas de comportement de cliché instantané (car il n'existe pas dans le noyau .NET) et il est donc plus probable que des problèmes de verrouillage se produisent. Cependant, nous avons implémenté la prise en charge de la fonctionnalité" mettre l'application hors ligne "fournie par msdeploy."

J'ai donc vérifié mettre l'application hors ligne et essayé, et le fichier n'est pas verrouillé lorsque je redéploie.

3
SofterThoughts

Suite à cela article , vous pouvez également essayer d'ajouter cette directive dans votre pubxml Web Deploy pour demander de mettre l'application Function hors ligne pendant le déploiement:

<EnableMsDeployAppOffline>True</EnableMsDeployAppOffline>

2
Jeetesh Mangwani

Réponse mise à jour: Voici une documentation sur les étapes que vous pouvez suivre lorsque vos fichiers sont verrouillés (en plus de redémarrer manuellement votre application). https://github.com/projectkudu/kudu/wiki/Dealing-with-locked-files-during-deployment

2
Marie Hoeger