使用MSDeploy 4从Azure VM部署到Azure应用服务时遇连接终止错误
MSDeploy 4部署到Azure App Service时出现ERROR_CONNECTION_TERMINATED错误的解决方法
问题描述
使用MSDeploy 4(而非3.6版本)向Azure App Service部署应用时,触发以下错误:
##[error]Error: Error Code: ERROR_CONNECTION_TERMINATED
更多信息:Web Deploy与服务器发生连接问题,不得不终止连接。若问题持续,请联系服务器管理员。
错误:发生意外的文件结束。以下元素未关闭:results。第1行,位置550。
错误计数:1。
完整堆栈跟踪:
更多信息:Web Deploy与服务器发生连接问题,不得不终止连接。若问题持续,请联系服务器管理员。 ---> System.Xml.XmlException: 发生意外的文件结束。以下元素未关闭:results。第1行,位置550。 at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ThrowUnclosedElements() at System.Xml.XmlTextReaderImpl.ParseElementContent() at Microsoft.Web.Deployment.TraceEventSerializer.Deserialize(Stream responseStream, DeploymentBaseContext baseContext, DeploymentSyncContext syncContext) --- 上一位置中抛出异常的堆栈跟踪结束 --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject) --- 内部异常堆栈跟踪结束 --- at Microsoft.Web.Deployment.StatusThreadHandler.CheckForException() at Microsoft.Web.Deployment.PackageSerializer.CheckForErrorOrCancel() at Microsoft.Web.Deployment.PackageSerializer.SerializeSingleObject(DeploymentObject obj, Int32 parentId) at Microsoft.Web.Deployment.PackageSerializer.Serialize(DeploymentObject obj, Boolean shouldSendPadding) at Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext, Nullable`1 syncPass, String syncSessionId) at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions) at MSDeploy.MSDeploy.ExecuteWorker()
注:该问题仅出现在Azure虚拟机上,本地设备部署无异常。
已尝试的无效解决方案
- 禁用Windows防火墙
- 禁用Windows Defender实时保护
- 确保Fiddler未运行
根因与解决方法
通过Fiddler排查发现,防火墙阻止了digicert.com的IP地址192.229.211.108,导致MSDeploy 4在部署过程中无法完成证书验证相关请求,最终触发连接终止和XML解析错误。
解决方法:在Azure虚拟机的防火墙规则中添加允许访问192.229.211.108的出站规则,确保MSDeploy可以正常连接该地址完成部署流程。
内容的提问来源于stack exchange,提问作者Scott Hale
相关产品推荐
相关产品推荐

