1

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

我正在通过同一个 SoapClient 实例一个接一个地拨打 4 个电话。但是,经过一段时间的运行,并且在一个随机点(并非总是在同一个方法调用上),我看到以下错误:

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

4

2 回答 2

3

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

当一个 SOAP 调用运行了很长时间后,我尝试将相同的连接用于另一个请求时,就会出现问题。第一个将成功,但在新调用时,错误会引发。

这意味着,只要您不需要相同的连接(这通常是 SOAP Web 服务的情况),您就可以重置调用之间的连接。不是最有效地利用资源,但会完美地工作。

于 2011-05-27T03:25:46.383 回答
3

我发现添加

'keep_alive' => false

选项

new SoapClient($url, $options)

为我解决了这个问题。

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

于 2016-11-17T01:23:31.517 回答