- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 Delphi 2007 程序转换为 Delphi XE2,但遇到以下错误消息:
Unable to retrieve the URL endpoint for service/port "/" from WSDL 'http://.....'
我连接的服务是用 Delphi 2007 编写的。
2007 年它编译并运行没有问题。在具有相同代码的 XE2 上,它会因错误而失败。
我尝试使用新的 WSDL 导入器重新导入界面并设置默认值,但没有什么乐趣。
我还尝试设置端口和服务名称,但错误仍然存在。不确定哪些信息有用,但据我所知它正在连接。
这是我正在使用的方法的操作
<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>
这是消息:
<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>
除了导入 WSDL、抛出 HTTPRIO 并调用该方法
(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
我认为我没有做任何其他事情,正如我所说,相同的代码可以在 Delphi 2007 上运行。
最佳答案
已解决。嗯,有点像!看起来 Delphi XE2 正在寻找 2 项服务,而 Delphi 2007 正在寻找一项服务。我正在使用的程序从注册表中读取 WSDL 位置并进行设置。在 Delphi 2007 上,这很好,因为它采用唯一的服务并创建选定的端口/服务。在 Delphi XE2 上,重置 WSDL 位置会导致端口和服务被清除。感谢@JohnEasley 为我指明了正确的方向。为了解决这个问题,我现在必须在更改 WSDL 位置后使用以下代码。不确定它是否适用于每个人,因为我假设第一个条目是必需的
servicenames:=Tdomstrings.Create;
portnames:=Tdomstrings.Create;
HTTPRIO1.WSDLItems.GetServices(servicenames);
if servicenames.count>0 then
begin
HTTPRIO1.Service:=servicenames[0];
HTTPRIO1.WSDLItems.GetPortsForService(servicenames[0],portnames);
if portnames.count>0 then
HTTPRIO1.Port:=portnames[0];
end;
servicenames.clear;
servicenames.Free;
portnames.clear;
portnames.Free;
谢谢大家
关于Delphi XE2 HTTPRIO 无法检索服务/端口的 URL 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974390/
我想HTTPRio组件收到数据后,会解析数据。我这样说是因为在程序离开 AfterExecute 过程之后,需要很长时间才能继续执行下一行代码。 我想要的是清除已经到达AfterExecute过程的数
当我退出我创建的 THTTPRIO 对象上的应用程序时,出现内存泄漏。 我的网络服务定义如下: type TSimpleWebService = class protected FHT
我有一个 https SOAP ,我想忽略证书验证。我在 THTTPRIO.HTTPWebNode 中通过 OnBeforePost 事件做到了这一点: procedure TMySOAP.OnBef
我正在将 Delphi 2007 程序转换为 Delphi XE2,但遇到以下错误消息: Unable to retrieve the URL endpoint for service/port "/
Delphi 10.3 中的 HTTPRIO.HTTPWebNode.OnBeforePost 事件发生了变化。 在 Delphi 10.3 之前,事件处理程序是这样定义的,并且它工作得很好: pro
我很难弄清楚哪里出了问题。 我收到这条消息: Debugger Exception Notification Project Project9.exe raised exception
我有一个 C# web 服务托管在 IIS 中,启用了 Windows 身份验证,我从 Delphi 7 客户端调用它。 当我调用该方法时,我有一个系统登录对话框,我必须输入我的 Windows 用户
我是一名优秀的程序员,十分优秀!