web-dev-qa-db-fra.com

Azure Function App - Échec de la publication

Je ne parviens pas à publier (WebDeploy) mon application Azure Function (c'est une fonction durable, je sais que cela n'a pas d'importance, mais au cas où cela importerait). Cela a commencé aujourd'hui.

Je reçois un message contextuel "Échec de la publication" et le message d'erreur ci-dessous dans la fenêtre de sortie de Visual Studio.

Message d'erreur

<ProjectName> -> C:\search\source\<Solution Folder>\obj\Release\netstandard2.0\PubTmp\Out\
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Web deployment task failed. (Could not connect to the remote computer ("<functionappname>.scm.azurewebsites.net"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at: http://go.Microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.) [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The requested resource does not exist, or the requested URL is incorrect. [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Error details: [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Could not connect to the remote computer ("<functionappname>.scm.azurewebsites.net"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at: http://go.Microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE. [<projectname>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The remote server returned an error: (404) Not Found. [<projectname>.csproj]
  Publish failed to deploy.

Fonction Runtime - beta

Lorsque j'accède à l'URL de l'application des fonctions dans un navigateur, le message "Votre message" s'affiche. ".

J'ai supprimé la fonction et l'ai recréée avec le même nom sans succès. 

Toute aide est très appréciée.

Mise à jour: Voici une autre erreur que je reçois aussi.

C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Web deployment task failed. ((7/25/2018 1:16:27 PM) An error occurred when the request was processed on the remote computer.) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :  [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : (7/25/2018 1:16:27 PM) An error occurred when the request was processed on the remote computer. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : An error was encountered when processing operation 'Create Directory' on 'D:\home\site\wwwroot\bin'. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : The error code was 0x800703E6. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error : Invalid access to memory location. [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :  [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.FileSystemInfoEx.set_Attributes(FileAttributes value) [<Project Name>.csproj]
C:\Program Files\dotnet\sdk\2.1.202\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5): error :    at Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject source, Boolean whatIf) [<Project Name>.csproj]
  Publish failed to deploy.

Merci, Praveen

4
Prawin

Je ne sais pas si cela est fermé, mais j'ai eu le même problème lors du déploiement de la nouvelle version du SDK sur une ancienne application de fonction Azure. Voici ce que j'ai fait: Au lieu de télécharger le profil de déploiement à partir du portail Azure, j'en ai créé un nouveau avec le déploiement automatisé de visual studio . C'est important: lors du déploiement à partir de Visual studio, il devrait vous demander de mettre à niveau la version de l'application déployée , cliquez sur oui et votre application sera déployée.

3
Harish

Impossible de reproduire votre erreur lors de l'utilisation de WebDeploy avec SCM. Lorsque j’ai défini WEBSITE_WEBDEPLOY_USE_SCM sur false (dans les paramètres de l’application) pour éviter d’utiliser SCM, j’ai vu An error was encountered when processing operation 'Create Directory' on 'wwwroot' comme la deuxième erreur que vous avez rencontrée.

Plusieurs options à essayer:

  1. Visitez https://functionappname.scm.azurewebsites.net dans le navigateur pour vérifier si votre environnement réseau fonctionne correctement et qu'il n'existe aucune restriction de pare-feu. 
  2. Vérifiez si vous avez défini un proxy comme Fiddler lors de la publication.
  3. Allez sur le portail, Reset publish credentials puis Download publish profile. Supprimez les anciens profils de publication et importez le nouveau pour le publier à nouveau.
  4. Si toutes ces suggestions échouent, supprimez toutes les anciennes ressources liées à la fonction. Créez ensuite une nouvelle application avec un nouveau plan de service et de stockage. Essayez de publier sur cette nouvelle application.
1
Jerry Liu

C'était facile à manquer pour moi ... mais la fonction sur Azure bloquait ma publication à partir de Visual Studio 2017.

Ce qu'il fallait, c'était un redémarrage de la fonction sur Azure.

1) Accédez au portail Azure et cliquez dans votre application Fonction.

2) Cliquez sur le nom de votre fonction, puis dans l'onglet Présentation - dans le menu de la deuxième ligne, vous devriez voir Redémarrer. (Vous le verrez dans la rangée avec: Stop - Swap - Redémarrer - Obtenir le profil de publication ... etc.)

3) Cliquez sur Redémarrer

4) Retournez à Visual Studio 2017 et republiez. 

Mon message d'erreur que j'ai initialement manqué:

C:\Program Files\dotnet\sdk\2.2.103\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(140,5): error : Web deployment task failed. (Web Deploy cannot modify the file 'MyApp.Functions.dll' 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.) [C:\Github\2019AzureBlobLocalOnly\MyApp.Functions\MyApp.Functions.csproj]
0
Andrew Chung