Tenho um script php que se conecta a um serviço da Web.
Ao executar o mesmo script por meio da CLI, ele é executado corretamente (conexão inicial de um segundo e chamadas para o serviço muito rapidamente).
Ao executar a página em PHP através de um servidor IIS FastCGI, demora cerca de 5 segundos de atraso na primeira chamada para um método de webservice.
A segunda chamada para o método de serviço da web é rápida normalmente.
Qualquer conselho sobre onde verificar em seguida será apreciado. Estou com uma perda de como depurar ainda mais.
Estou usando o PHP 5.6.13 no IIS dentro do Windows Server 2008 R2 Standard
Este é o script que estou usando para testar esse problema isoladamente (nome do serviço da web anônimo, pois não é acessível publicamente)
<?php
define('SOAP_URL', 'https://sandbox.webservice.com/Service.asmx?WSDL');
define('SOAP_NAMESPACE', 'http://service.webservice.com/');
class WebService
{
public $client;
function __construct($SoapURL = SOAP_URL, $SoapNS = SOAP_NAMESPACE)
{
$soapHeader = array('User' => '...', 'SecretKey'=> '...');
$this->client = new SoapClient($SoapURL, ['trace'=>true]);
$header = new SOAPHeader($SoapNS, 'ClientAuth', $soapHeader);
$this->client->__setSoapHeaders($header);
}
}
var_dump(['start', $time = time()]);
$service = new WebService();
var_dump(['init', time() - $time]);
$params = [
'option' => 1000,
...
'loads_of_options_skipped' => 1,
];
$service->client->GetInfo(['for_id'=>34]);
var_dump(['call1', time() - $time]);
$service->client->GetInfo(['for_id'=>34]);
var_dump(['call2', time() - $time]);
A saída mostra um atraso de 4/5 segundos na saída de "call1".
esse atraso não ocorre se eu rodar o script idêntico via CLI, nem no nosso antigo servidor que era o php 5.4