2010-07-16 139 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函数的超时参数,以使应用程序更快地为页面提供服务。

相关问题