使用basicHttpBinding的Delphi 7 Soap WCF服务

时间:2010-09-07 18:39:25

标签: delphi wsdl wcf delphi-7 basichttpbinding

我将一个basicHttpBinding添加到我在生产中的现有服务中,以便公开它以便在Delphi中使用。

当我尝试在wsdl文件中使用Delphi 7中的WSDLImporter时,它无法正常工作。

结果tlb中的一节说

// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //

.NET客户端可以正常使用此服务。该服务使用的是complexTypes,但它们位于文件中,并且它们是较新的分割为多个文件以供xsd导入。

在Delphi 7中以任何方式执行此操作?我甚至尝试将所有导入的类型拉回到1个wsdl文档中。没有区别。

谢谢, 大卫

2 个答案:

答案 0 :(得分:0)

首先猜测WCF服务是SOAP 1.2,在Delphi 2010中添加了支持。

对于Delphi 7,您可以尝试this question的一些答案。

- 的Jeroen

答案 1 :(得分:0)

我知道这很老(非常),但它可能会帮助其他人在努力解决这个问题,就像我们与Delphi的WCF互操作性一样。

在我自己的经历中有什么不同

  1. 使用basicHttpBinding
  2. 使用Delphi wsdlImp命令行工具
  3. 执行Soap 1.1
  4. 指向SingleWsdl地址。
  5. 这是我们的WsdlImp命令的样子:

    wsdlimp  -P -XName -Ox- -SOAP11 -Oa- -Ol+ -ob+ -= http://srvAddress:1253/WCF.Server/Utils.svc/metadata?singleWsdl=UtilsWsdl.pas