PHP SoapClient: type soapfault exception ne Pouvait pas se connecter à l'hôte

à l'aide de ce code que j'ai fabriquer du savon demandes

$client = new SoapClient('http://example.com/soap/wsdl');

try {
    $result = $client->myMethod();
} catch (Exception $e) {
    echo $e->getMessage();
}

Parfois (une fois sur dix), une exception est levée:

Exception de type soapfault: [HTTP] impossible de se connecter à l'hôte

Mes tentatives

1) j'ai cherché des solutions, et J'ai lu que ce problème peut être causé par le cache wsdl, j'ai désactivé dans php.ini:

soap.wsdl_cache_enabled = 0
soap.wsdl_cache_ttl = 0

soulève moins d'exceptions

2) j'ai essayé d'ajouter à l'hôte de windows (ils sont sur windows) la résolution du dns dans windows/system32/drivers/etc/hosts:

160.XX.XXX.XX example.com

soulève moins d'exceptions

3) j'ai aussi essayé de désactiver le Pare-feu Windows",

soulève moins d'exceptions

4) j'ai aussi essayé d'augmenter le default_socket_timeout en php.ini

default_socket_timeout = 90

rien n'a changé

La question

Le serveur soap ne semblent pas avoir de problèmes.Il est utilisé sans problèmes également à partir d'autres sites. Est-il autre chose que je peux faire?

Mes paramètres

PHP 5.6

Apache 2.4

Windows Server 2012

Mise à JOUR

Après de nombreux tests, je pense que le problème est dans le réseau, le serveur soap est derrière un proxy inverse, le problème apparaît dans le proxy.

Type soapfault constitue une exception a donc une méthode ->getMessage() qui peut vous dire quel est le type soapfault est?
oui, je change ma question pour la rendre plus claire
Peut-être que cela aidera stackoverflow.com/questions/4318870/...
Vous avez un logiciel antivirus? Il semble être un problème de réseau, de sorte que vous pouvez mettre dans le catch un autre SoapClient essayer et voir si elle échoue. Si vous avez un autre serveur dans le même réseau, vous pouvez essayer de faire la même requête SOAP de voir ce qui se passe.
Il se pourrait que la durée de vie n'est pas dépassée. De vérifier la remarque concernant le cache WSDL dans la doc: php.net/manual/en/soapclient.soapclient.php. Fondamentalement changer le réglage n'a aucun effet jusqu'à ce que le temps a passé.

OriginalL'auteur Simone Nigro | 2015-05-23