我在访问.NET SOAP web服务时遇到了Delphi7(Build8.1)应用程序的问题。大多数情况下,它工作得很好,但有时我们会收到访问冲突。我相信(但不是百分之百确定),只有当用户在“几个小时”内第一个访问web服务时才会出现错误--例如,我可以在循环中调用它数百次而没有任何问题。
我已经在涉及到的每台计算机上禁用了数据执行保护,并且我还尝试了从以下下载获得的更新的WSDL导入程序:http://cc.embarcadero.com/Item/24535。(但是,我不能理解有关运行时文件的自述文件,所以这可能是我的实际问题?)
有人知道如何解决这个问题吗?
发布于 2013-03-06 23:49:37
请看我对这个问题的回答How do I get the SOAP response when there was an exception?实际上,我有两个答案,但我感兴趣的是RIO OnAfterExecute处理程序。在那里,您可以记录对文件的SOAP响应,并且可以看到发生了什么。我预计在几个小时的不活动之后,服务器可能会给出一个空响应或超时。如果SOAP响应XML返回为空,并且您试图将该响应视为SOAP对象,那么它将为空,并且您肯定会使用A/V崩溃。这样,您就可以检查返回的原始文本,并做出相应的反应。你可以在这里构建防御性代码。例如,如果响应为空,则可以换入表示SOAP错误异常的其他一些XML。现在,您的SOAP处理程序将知道要做什么。
发布于 2014-03-28 04:34:02
我遇到过类似的问题,我建议您在应用程序中包含异常,而不是DEP (数据执行保护)中的异常,这样它就不会阻塞应用程序。尽管如此,在我的例子中,由于该应用程序具有AccessViolation,因此返回答案的WebService take存在问题。在调用WebService之后,我不得不在您的代码中添加"Application.ProcessMessages“函数。
https://stackoverflow.com/questions/15250097
复制相似问题