MSDeploy завершается с ошибкой «существующее соединение было принудительно закрыто удаленным хостом» - PullRequest
6 голосов
/ 26 января 2011

Следующая строка MSDeploy, предоставленная в командной строке, приводит к ошибке.Кто-нибудь может пролить свет на это?

"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

След стека:

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.

Ответы [ 2 ]

4 голосов
/ 26 января 2011

Причиной была смесь вещей - проблема с внутренним разрешением DNS, означавшая, что имя хоста разрешало неправильный IP, плюс мы должны использовать IIS6, и я считаю, что возникла проблема с хостингом агента http, необходимого для msdeploy на том же порту, что и существующие веб-сайты.

Было принято решение точно указать IP-адрес и заново установить службу развертывания (WebDeploy) из командной строки, указав настраиваемую конечную точку, чтобы избежать конфликта IIS.

Мое рабочее заклинание:

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package=D:\Path\obj\Configuration\Package\Project.zip -dest:auto,computerName='http://192.168.x.xxx:8090/MsDeployAgentService2/' -allowUntrusted  -setParam:"IIS Web Application Name"="Website Name In IIS"
0 голосов
/ 13 февраля 2019

Другая возможная причина ошибки msdeploy.exe: 0 .... System.IO.IOException: Невозможно записать .... соединение было принудительно закрыто удаленным хостом .... msgstr "ошибка в том, что один из двоичных файлов сайта активно работает и поэтому не может быть перезаписан. Это может произойти, если хотя бы 1 DLL-файл записывается в файл журнала. Одним из решений является остановка веб-сайта, а затем выполнение MSDeploy, хотя это не является оптимальным решением, поскольку мы не можем позволить веб-сайту отключиться в течение пары минут, пока развернута новая версия ...

...