执行resp:=(HTTPRIO为iHttpCust)。Customer(OrdNo)失败,并显示“未安装Microsoft MSXML”

问题描述 投票:0回答:1

在Windows 10-64位上运行,没有要安装的MSXML。最新的MSXML是6,自XP sp3起未更新。尝试在Win 10上安装它失败。

我正在Delphi 10.3.2 Rio中开发Delphi 2007程序。我已经导入了WSDL文件并添加了HTTPRIO组件,并且以与旧版本相同的方式进行了设置。我已经创建了必要的调用并编译了程序。当它运行并尝试执行(HTTPRIO为xxx)命令时,失败,并没有消息MSXML。

[跳过呼叫并测试程序的其余部分,使用LoadFromFile而不是LoadFromStream加载XML文件,则XML文件的处理工作正常。我正在使用XMLParser。

更奇怪的是:在与新程序相同的计算机上运行完全相同且以相同方式运行的旧(delphi 2007)程序时,它可以正常运行。

两者之间的区别是,我正在使用Delphi 10.3.2 Rio并在Windows 10-64计算机上编译新程序,当然还使用了较新版本的HTTPRIO组件,而旧的rogram是在Vista计算机。

显然,我缺少一些东西,但不知道是什么。有人可以帮忙吗?非常感谢您的帮助。

关于疮

xml soap wsdl delphi-10.3-rio
1个回答
0
投票

我找到了可行的解决方案。改用OmniXML。

向uses子句中添加xml.xmldom和xml.omnixmldom,然后在formshow(或formcreate或第一次XML调用之前的代码中的任何位置,添加一行)>

DefaultDOMVendor:= sOmniXmlVendor;

就是这样。没有安装MSXML的错误已消失,现在我确实得到了肥皂响应并可以访问Web服务。注意!我确实尝试使用xml.win.msxmldom并将defaultdomvender设置为SMSXML,但始终出现未安装的错误。

我在阅读此页面时找到了解决方案:https://delphiaball.co.uk/2014/12/29/setting-default-xml-dom-delphi-xe7/

在此情况下,感谢Google和Stephen Ball。

© www.soinside.com 2019 - 2024. All rights reserved.