このコードを使用して、SOAP リクエストを作成します
$client = new SoapClient('http://example.com/soap/wsdl');
try {
$result = $client->myMethod();
} catch (Exception $e) {
echo $e->getMessage();
}
ときどき (10 回に 1 回)、例外が発生します。
SoapFault 例外: [HTTP] ホストに接続できませんでした
私の試み
1)解決策を探したところ、この問題はwsdlキャッシュが原因である可能性があることを読みphp.ini
ました.で無効にしました:
soap.wsdl_cache_enabled = 0
soap.wsdl_cache_ttl = 0
発生する例外が少なくなります
2)Windowsのホスト(Windows上にあります)にDNSの解像度を追加しようとしましたwindows/system32/drivers/etc/hosts
:
160.XX.XXX.XX example.com
発生する例外が少なくなります
3) 「Windows ファイアウォール」も無効にしてみましたが、
発生する例外が少なくなります
4) php.ini の default_socket_timeout も増やしてみました。
default_socket_timeout = 90
何も変わっていません
質問
サーバーソープは問題ないようです。他サイトからも問題なく使用しています。他にできることはありますか?
私の設定
PHP5.6
アパッチ 2.4
Windows Server 2012
アップデート
多くのテストの後、問題はネットワークにあると思います。soap サーバーはリバース プロキシの背後にあり、問題はプロキシに表示されます。