如何修复SFTP端口上的WinSCP错误'System.Xml.XmlException:根元素丢失'

时间:2019-01-08 14:13:45

标签: sftp biztalk winscp winscp-net biztalk-2016

我在BizTalk 2016实例上通过轮询连接到SFTP站点时出现SFTP接收端口出现以下错误:

  

消息传递引擎未能将具有URL“ sftp://我们的源服务器:22 / Live / Pickup / Exports / ”的接收位置“ OURPORTNAME”添加到适配器“ SFTP”。原因:“ WinSCP.SessionLocalException:解析会话日志文件---> System.Xml.XmlException时出错:根元素丢失。        在WinSCP.SessionLogReader.DoRead()处System.Xml.XmlTextReaderImpl.Read()处System.Xml.XmlTextReaderImpl.ParseDocumentContent()处System.Xml.XmlTextReaderImpl.Throw(Exception e)

在WinSCP站点上,看起来与此版本的BizTalk绑定的WinSCP版本可能会出现此错误。

BT2016随附的WinSCP版本是:

文件版本:1.5.4.8265 产品版本:5.13.1.0

我尝试将WinSCP程序集和EXE的新版本5.13.6(1.5.6.9061)复制到BizTalk安装文件夹中,并按照以下说明更新了Biztalk 32和64位配置文件( BTSNTSvc.exe.config)重定向到此新版本的WinSCP:

Microsoft BizTalk SFTP Adapter

(请参阅“使用更新的WinSCP版本”)

因此在64位和32位配置中,我都有:

<bindingRedirect oldVersion="1.5.4.8265" newVersion="1.5.6.9061" />

在编辑并重启主机实例后,我从事件日志中的SFTP端口获取了此信息:

  

邮件引擎无法添加接收位置“ OURPORTNAME”        网址为“ sftp://我们的源服务器:22 / Live / Pickup / Exports / ”        适配器“ SFTP”。原因:“ WinSCP.SessionRemoteException:网络        错误:软件导致WinSCP.ElementLogReader.Read(LogReadFlags标志)处WinSCP.SessionLogReader.Read(LogReadFlags标志)处的连接终止

关于什么原因的任何想法?

2 个答案:

答案 0 :(得分:0)

此问题已在WinSCP 5.13.2中修复:
Bug 1619 – Failure when .NET assembly starts reading an XML log file in a short moment when it's empty yet


对于较新版本的WinSCP所遇到的问题,请考虑发布新问题,并且不要忘记包含会话日志文件(Session.SessionLogPath)。

答案 1 :(得分:0)

事实证明,升级后存在防火墙/连接性问题,使它无法在我们的测试环境中运行。