問題タブ [soapserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP SoapClient: SoapFault 例外がホストに接続できませんでした
このコードを使用して、SOAP リクエストを作成します
ときどき (10 回に 1 回)、例外が発生します。
SoapFault 例外: [HTTP] ホストに接続できませんでした
私の試み
1)解決策を探したところ、この問題はwsdlキャッシュが原因である可能性があることを読みphp.ini
ました.で無効にしました:
発生する例外が少なくなります
2)Windowsのホスト(Windows上にあります)にDNSの解像度を追加しようとしましたwindows/system32/drivers/etc/hosts
:
発生する例外が少なくなります
3) 「Windows ファイアウォール」も無効にしてみましたが、
発生する例外が少なくなります
4) php.ini の default_socket_timeout も増やしてみました。
何も変わっていません
質問
サーバーソープは問題ないようです。他サイトからも問題なく使用しています。他にできることはありますか?
私の設定
PHP5.6
アパッチ 2.4
Windows Server 2012
アップデート
多くのテストの後、問題はネットワークにあると思います。soap サーバーはリバース プロキシの背後にあり、問題はプロキシに表示されます。
php - SoapFault をスローするときの HTTP ステータス コードの変更
PHP アプリケーションでをスローするSoapFault
と、HTTP ステータス コードが に設定されHTTP/1.1 500 Internal Service Error
ます。http_response_code()
これは、を使用して、またはheader()
スローする前に、ステータス コードを別のものに設定した場合でも発生しますSoapFault
。をスローするときにステータスコードを変更する方法はありませんSoapFault
か? そして、それは呼ばれるべきではありませんHTTP/1.1 500 Internal Server Error
か?存在すら知らなかっHTTP/1.1 500 Internal Service Error
た。
SoapUI を使用して、 からの応答を検査していSoapServer
ます。
スローの例(オブジェクトSoapFault
が扱う関数内)SoapServer
応答例:
応答ヘッダーの例: