0

我有一个 ASMX 服务的两个 delphi 客户端。一个客户端是普通的桌面应用程序,另一个是 Outlook 插件。在我的 PC 上一切正常(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);

问题是:这个错误的原因是什么,同一台机器上的一个客户端怎么能正常工作而另一个不能呢?我该怎么做才能重现,诊断这种情况?

PS我知道嗅探http数据包会很棒,但是我无法访问客户的PC来运行http嗅探器。

4

1 回答 1

0

您的日志未显示原始请求的时间戳。如果时间差恰好落在 30 或 60 秒的边界上,那么这几乎肯定是超时情况。即没有收到任何回应。如果它立即发生,那么您的请求可能没有发出,并且被防火墙阻止。

于 2013-08-09T14:27:34.293 回答