SSL:使用PHP SoapClient访问SOAP服务的管道损坏

时间:2010-11-08 15:20:05

标签: zend-framework soap soap-client php

我有一个SOAP WS,我通过PHP的SoapClient访问(用Zend Framework的Soap Client包装)。 Web服务通过https运行,调用需要相当长的时间(每个几分钟)。

我通过同一个SoapClient实例一个接一个地进行4次调用。但是,经过一段时间运行,并在一个随机点(在同一方法调用不是总是),我看到以下错误:

  

警告:SoapClient :: __ doRequest():SSL:pathtomyfile中的管道损坏

2 个答案:

答案 0 :(得分:3)

我仍然不知道为什么会这样,但我有一些额外的见解和解决方法。

问题出现的时候,在花了很长时间才能运行的SOAP调用之后,我尝试将同一个连接用于另一个请求。第一个将成功,但在新呼叫时,错误会增加。

这意味着,只要您不需要将连接设置为相同(这通常是SOAP Web服务的情况),您就可以重置呼叫之间的连接。不是最有效地利用资源,而是能够完美地运作。

答案 1 :(得分:2)

我发现添加了

'keep_alive' => false

选项

new SoapClient($url, $options)

为我解决了这个问题。

这里有一个相关的错误报告,但除此之外,关于它的文档很少:https://bugs.php.net/bug.php?id=60329