4 votes

MSDeploy échoue avec "une connexion existante a été fermée de force par l'hôte distant".

La chaîne MSDeploy suivante fournie à la ligne de commande entraîne une erreur. Quelqu'un peut-il m'éclairer à ce sujet ?

"C:\Program Files\IIS\Microsoft Web Deploy\\msdeploy.exe" -source:package='D:\dev\Project\obj\BuildConfiguration\Package\Project.zip' -dest:auto='Website Name',computerName='computername',userName='username',password='password' -verb:sync -enableRule:DoNotDeleteRule -allowUntrusted -debug

Trace de la pile :

Microsoft.Web.Deployment.DeploymentAgentUnavailableException: Could not complete the request to remote agent URL 'http://computername/MSDEPLOYAGENTSERVICE'.
---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)   
--- End of inner exception stack trace ---    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)    at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)    at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)    --- End of inner exception stack trace ---    at System.Net.HttpWebRequest.GetResponse() at Microsoft.Web.Deployment.AgentClientProvider.GetHttpResponse(HttpWebRequest request)    --- End of inner exception stack trace ---    at Microsoft.Web.Deployment.AgentClientProvider.GetHttpResponse(HttpWebRequest request)    at Microsoft.Web.Deployment.AgentClientProvider.CreateStatusThread(DeploymentSyncContext syncContext)    at Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext)    at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable)    at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)    at MSDeploy.MSDeploy.ExecuteWorker() Error count: 1.

3voto

Weiramon Points 1183

Avez-vous installé sur 'computername' - le service agent msdeploy ?

Pour l'installer - vous devez :
1) télécharger le paquet à partir de iis.net
2) installer service de gestion (pour IIS sur le serveur DEST)
3) configurer le service de gestion (pour autoriser par ip quelque chose, note : il faut AU MOINS UNE entrée)
4) lancer le service de gestion
5) démarrer service d'agent
6) essayer le déploiement

Je suis sûr que cela devrait fonctionner (j'ai rencontré cette erreur lorsque j'ai essayé d'utiliser msdeploy pour la première fois).

3voto

David Montgomery Points 215

J'ai également vu ce message d'erreur "déconnexion forcée" lorsque le certificat utilisé par le service de gestion n'est pas valide pour le serveur.

Dans mon cas, j'ai créé une VM de serveur web standard, puis cloné une version sysprepped de la VM. Le service de gestion sur les VM clonées affichait toujours un certificat émis par la VM d'origine.

Remplacer le mauvais certificat par un certificat auto-signé résout le problème.

Il m'a fallu quelques minutes pour le comprendre au départ...

0voto

TheWickerman666 Points 153

Je viens de rencontrer ce problème sur un serveur IIS 10.

Notre déploiement à distance à partir de CI retournait l'erreur suivante :

07-Mar-2019 11:36:21    Info: Using ID 'fc4e2c45-1368-4487-aff2-60cbb3cde2f6' for connections to the remote server.
07-Mar-2019 11:36:22    Error: Could not complete the request to remote agent URL 'https://anonymous-server.co.nz:8172/msdeploy.axd?site=anonymous-site.co.nz'.
07-Mar-2019 11:36:22    Error: The underlying connection was closed: An unexpected error occurred on a send.
07-Mar-2019 11:36:22    Error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
07-Mar-2019 11:36:22    Error: An existing connection was forcibly closed by the remote host
07-Mar-2019 11:36:22    Error count: 1.

Cela s'est produit après une fenêtre de maintenance que nous avons effectuée il y a quelques nuits, en installant les mises à jour de Windows et en redémarrant le serveur. Le service de gestion était en ligne et j'ai tenté de le redémarrer, mais il n'a pas permis aux déploiements de fonctionner.

Le certificat SSL utilisé n'expirait pas avant 2027 et semblait être lié au service correctement. Merci au commentaire de @David-Montgomery ci-dessus, qui m'a mis sur la bonne voie.

  1. Créez un nouveau certificat auto-signé à partir du nœud de serveur -> vue des certificats du serveur (peu importe ce que c'est, c'est temporaire)
  2. Arrêtez le service de gestion (en allant sur le nœud de serveur, puis sur Service de gestion dans le groupe de gestion au bas de la vue des de la vue des fonctionnalités, puis en double-cliquant dessus, et en utilisant l'option stop dans la partie panneau de droite)
  3. Changez le certificat SSL sur la gestion (WMSVC) pour qu'il soit le certificat auto-signé que vous venez de créer.
  4. Posez votre candidature et démarrez le service sur le côté droit.
  5. Arrêtez à nouveau le service
  6. Remplacez le certificat SSL par celui qui était utilisé. précédemment (en supposant qu'il n'a pas expiré).
  7. Postuler et démarrer le service à nouveau.
  8. Supprimez le certificat temporaire que vous avez créé.

Après cela, le service de gestion semble se rebondir sur le certificat SSL et les déploiements fonctionnent à nouveau.

TLDR : pour une raison quelconque, le service WMSVC a perdu sa connexion au certificat SSL bien que l'interface utilisateur l'ait montré comme étant lié ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X