【问题标题】:SSL: Broken pipe accesing SOAP service with PHP's SoapClientSSL:使用 PHP SoapClient 访问 SOAP 服务的管道损坏
【发布时间】:2010-11-08 15:20:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: zend-framework soap soap-client php


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我发现添加了

      'keep_alive' => false
      

      选项

      new SoapClient($url, $options)
      

      为我解决了这个问题。

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

      【讨论】:

      • 这也神奇地帮助了我。如果有人能解释为什么它会有所帮助 - 会很好。
      猜你喜欢
      • 2010-10-10
      • 2011-10-17
      • 1970-01-01
      • 2020-03-06
      • 2022-07-13
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多