我有一个SOAP WS,我通过PHP的SoapClient访问(用Zend Framework的Soap Client包装)。 Web服务通过https运行,调用需要相当长的时间(每个几分钟)。
我通过同一个SoapClient实例一个接一个地进行4次调用。但是,经过一段时间运行,并在一个随机点(在同一方法调用不是总是),我看到以下错误:
警告:SoapClient :: __ doRequest():SSL:pathtomyfile中的管道损坏
答案 0 :(得分:3)
我仍然不知道为什么会这样,但我有一些额外的见解和解决方法。
问题出现的时候,在花了很长时间才能运行的SOAP调用之后,我尝试将同一个连接用于另一个请求。第一个将成功,但在新呼叫时,错误会增加。
这意味着,只要您不需要将连接设置为相同(这通常是SOAP Web服务的情况),您就可以重置呼叫之间的连接。不是最有效地利用资源,而是能够完美地运作。
答案 1 :(得分:2)
我发现添加了
'keep_alive' => false
选项
new SoapClient($url, $options)
为我解决了这个问题。
这里有一个相关的错误报告,但除此之外,关于它的文档很少:https://bugs.php.net/bug.php?id=60329