2011-09-22 48 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庫,這非常有幫助。但我們仍然需要做一些調整。 –

相關問題