2012-02-02 191 views
3

在啓動PHP SOAP客戶端Web服務時,我在生產中遇到這些錯誤。PHP SoapClient SSL連接超時錯誤

這裏是代碼行,其產生錯誤:

//the php soap server is at different server 
$client = new SoapClient(SITE_ROOT . "locally hosted wsdl", 
         array("trace" => 1, "exception" => 1)); 

正在生成的錯誤是:

ERRNO: 2 \nTEXT: SoapClient::__doRequest() [<a href='soapclient.--dorequest'>soapclient.--dorequest</a>]: SSL: connection timeout \nLOCATION: 

所以這些錯誤只發生在生產和發生的2-3%總請求。

此外,這是一個基於HTTPS web服務的PHP SOAP,託管web服務的服務器也有防火牆,但是我們所有的前端服務器都可以通過防火牆訪問。

此外,default_socket_timeout設置爲60秒,最大執行時間爲30秒。

我的問題:

我想知道爲什麼發生這種情況。

回答

0

試試這個:

$client=new SoapClient(
     SITE_ROOT."your/wsdl.here.wsdl", 
     array(
      "exceptions" => true, 

      "connection_timeout" => 60, 

      "style" => SOAP_RPC, 
      "use" => SOAP_ENCODED, 
     ) 
    ); 

    $mxResponse=$client->__soapCall(
     "someFunctionName", 
     array("params", "here") 
    );