3

我正在使用 PHP SoapClient 来连接到 Web 服务。

$this->client = new SoapClient($this->wsdl, array('trace'=>true, 'cache' => WSDL_CACHE_DISK));

我每天都有很多请求,有时我会从 Soap 收到以下错误异常:

SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://ws-rca.24broker.ro/?wsdl' : failed to load external entity "http://www.example.ro/?wsdl" in ...

我再说一遍,这不是一直发生的事情。它发生了几秒钟。

所以我想检查是否在发生错误的那一刻,可以访问 WSDL,所以在 try/catch 语句中我使用带有上述 url 的 file_get_contents,似乎 WSDL 已启动并运行,因为我可以获得XML 代码,在错误发生的确切时刻。

所以我尝试了:

  1. 与处理上述 URL 的托管公司的 IT 人员交谈;他们说当时他们的 WSDL 已经启动并运行
  2. 检查了我所有的服务器日志文件;与上述错误无关,除了错误

有谁知道发生了什么?谢谢。

4

1 回答 1

3

查看您的 php.ini,如果:

default_socket_timeout = 0;

用类似的东西改变它:

default_socket_timeout = 300;

您也可以使用此功能http://php.net/manual/en/function.socket-set-timeout.php。希望有帮助。

于 2013-07-29T21:58:47.327 回答