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
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.
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>
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