我有一个ASMX服务的两个delphi客户端。一个客户端是普通的桌面应用程序,另一个是Outlook加载项。 在我的电脑上,一切正常(SOAP调用ASMX服务)。但是我的一个客户在Outlook加载项中遇到SOAP调用问题,同时桌面应用程序在同一台机器上按预期工作。
Outlook加载项中的SOAP调用问题是错误“XML文档必须具有顶级元素”。此错误的原因是呼叫空响应。看一下日志:
8/7/2013-1:12:29 PM Response:
8/7/2013-1:12:29 PM XML document must have a top level element.
Line: 0
XMLDoc.TXMLDocument.LoadData + $2AA
XMLDoc.TXMLDocument.SetActive + $A8
XMLDoc.TXMLDocument.LoadFromStream + $29
Rio.TRIO.Generic + $70F
使用调用
在HttpRio AfterExecute方法中检索响应流fResponse.LoadFromStream(Response);
问题是:这个错误的原因是什么,同一台机器上的一个客户端如何才能正常工作?我可以做些什么来重现,诊断这种情况?
P.S。我知道嗅探http数据包会很棒,但我无法访问客户的PC来运行http嗅探器。
答案 0 :(得分:0)
您的日志未显示原始请求的时间戳。如果时差恰好落在30或60秒的边界上,那么这几乎肯定是超时情况。即没有收到任何回复。如果它立即发生,那么你的请求很可能没有出来,并被防火墙阻止。