2010-07-16 132 views
0

我在我的「服務器A」上運行了一個Php應用程序,該應用程序使用了託管在「服務器B」上的.NET Web服務。出於某種原因,有時我的「B服務器」上的IIS無法響應,而我的Php Web應用程序需要60秒才能加載web服務調用所在的頁面。我希望能夠改變這60秒,因爲我的客戶等待時間太長。另外,如果有辦法捕捉一些異常情況,那就太好了。當我的Web服務關閉時,Nusoap不會拋出異常!

我tryed這樣的事情,但的NuSOAP沒有拋出任何異常,如果網絡服務沒有響應:提前

try{ 
    $result = $client->call("GetTopSellersFromCategory", $parametros); 
    return $result; 
} 
catch (Exception $ex) 
{ 
     /*$mensaje= ($ex->getMessage()); 
     $codigo= ($ex->getCode()); 
     $fichero= ($ex->getFile()); 
     $linea= ($ex->getLine()); 
     $log_mensaje= date("H:i d-m-Y")." Error:: $codigo en $fichero en la linea $linea. Error $mensaje";*/ 
     return "error"; 
} 

感謝任何幫助,您可以給我。

乾杯

胡安

+0

NuSOAP可能無法給您足夠的控制權。如果你能達到CURL級別,你將會對發送到服務器的實際請求有更多的控制權。 – funwhilelost 2010-07-16 22:14:55

+0

謝謝!你能告訴我如何使用cURL通過SOAP調用.NET Web服務嗎?也許是一個代碼示例。再次感謝 – juanreyesv 2010-07-19 13:59:46

回答

0

尋找另一種解決這個問題,我發現這個http://phptoys.com/e107_plugins/content/content.php?content.41

我簡單地使用該功能來檢查我的網絡服務器正在運行調用我的web服務的webMethods的前。如果正在運行,那麼SOAP調用(使用NuSOAP),如果是DOWN,則執行此操作......但您始終可以調整fsockopen函數的超時參數,以使應用程序更快地爲頁面提供服務。