SoapClient PHP 5.6 Lento en IIS 7 (FastCgi), bien desde CLI

SoapClient PHP 5.6 Lento en IIS 7 (FastCgi), bien desde CLI

Tengo un script php que se conecta a un servicio web.

Cuando se ejecuta el mismo script a través de la CLI, funciona bien (la conexión inicial es un segundo y las llamadas al servicio son muy rápidas).

Cuando se ejecuta la página en PHP a través de un servidor IIS FastCGI, se demora alrededor de 5 segundos en la primera llamada a un método de servicio web.

La segunda llamada al método del servicio web es rápida como de costumbre.

Se agradecería cualquier consejo sobre dónde comprobar a continuación. No sé cómo depurar más.

Estoy usando PHP 5.6.13 en IIS dentro de Windows Server 2008 R2 Standard

Este es el script que estoy usando para probar este problema de forma aislada (el nombre del servicio web es anónimo porque no es de acceso público)

<?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]);

La salida muestra un retraso de 4/5 segundos en la salida de "call1".

este retraso no ocurre si ejecuto el script idéntico a través de la CLI, ni en nuestro antiguo servidor web que era php 5.4

Respuesta1

Este problema no está relacionado con SOAP, ya que acabo de encontrarme con el mismo problema al abrir una URL con file_get_contents. Parece haber un retraso en la conexión en alguna parte. No tengo idea de por qué esto podría ocurrir en IIS pero no en la línea de comando (ejecutando git bash en Windows)

información relacionada