2011-09-22 49 views
3

我有一个通过ws-security实现安全性的WCF(.net 3.5)服务。我已经生成了一个供德里v7.0中创建的客户使用的WSDL文件。从德里客户端收到的SOAP消息,我一直有很多问题:Delphi客户端使用的WCF中生成的WSDL

1)SOAP消息与使用相同WSDL文件的.NET Web窗体生成的SOAP消息不同。例如。由德里客户端发送的SOAP消息不包含<Header>元素

2)SOAP消息中缺少<Body>元素。等等。

综上所述,整合并不顺利。我认为这是一些不兼容问题。我想了解如何解决这些问题。应该采取什么预防措施,以便任何使用相同WSDL的客户端都可以发送类似于.NET客户端发送的SOAP消息的SOAP消息。

+0

既然你提到ws-security,我假设你正在使用'wsHttpBinding'? – CodingWithSpike

+1

问题不在于WCF服务的WSDL,而在于Delphi代理生成器如何解释它。如果服务方法使用的是简单的数据类型,那么将基于.NET的客户端作为Delphi应用程序的COM互操作对象进行打包可能比试图弄清楚如何调整Delphi代理以生成肥皂格式WCF服务期待。 –

+0

@ rally25rs:使用wsHttpBinding – pradeeptp

回答

0

您可以通过在XML字符串上使用stringreplace来注入标签,然后它就会出现在“线上”的门之前。您需要一个RIO_BeforeExecute处理程序,然后您可以直接处理SOAPRequest。

+0

我在本主题中发现了一些与不兼容有关的信息。 http://stackoverflow.com/questions/1101578/how-to-consume-non-iis-hosted-wcf-c-web-service-from-delphi-2007。这是真的吗? – pradeeptp

+0

每一代Delphi似乎都会变得更好。 D7真的很老。我在D2005中使用了DelphiXE SOAP库,这非常有帮助。但我们仍然需要做一些调整。 –

相关问题