çalışır. Bu kod, paylaşılan bir web sunucusuna yüklendiğinde ekstra bir önkoşul eklemek istemediğimden, temel olarak PHP 5 yerel sınıfları yerine NuSoap kullanıyorum. Kod benim makine üzerinde çalışıyor:Bir sabun web hizmeti çağırmak PHP NuSOAP sınıflarını kullanan bazı kod geliştirdik yerel makine değil sunucuda
require DOCROOT.'modules/nbn_species_dict_sync/lib/nusoap.php';
$client = new nusoap_client('http://www.nbnws.net/ws_3_5/GatewayWebService?wsdl', true);
$query1 = '<TaxonReportingCategoryListRequest xmlns="http://www.nbnws.net/TaxonReportingCategory" registrationKey="'.$key.'"></TaxonReportingCategoryListRequest>';
$response = $client->call('GetTaxonReportingCategoryList', $query1);
Ben sanal bir sunucu üzerinde bu koymak yerine yerel olarak çalışan, son satırı tam o sırada PHP bombalar dışarı yaklaşık 10 saniye boyunca asılı zaman. Hiçbir istisna yükseltilir ve PHP hatası yoktur (emin olmak için try..catch ve set_error_handler kullanarak denedim).
ilk tepkim bu giden istekleri engelliyor sunucuda çalışan bir firewall olabileceğini, ama başarılı istekleri için başka yerde kıvrılıp kullanıyorum ve burada çalışan hiçbir güvenlik duvarı yoktur eminim. $ Client-> use_curl çağrısı, NuSoap çağrısında fark yaratmıyor, yine de çalışmıyor.
bu çok takdir gelişiyor olabilir neden herhangi bir fikir.
Büyük olasılıkla memory_limit ayarı hafızası localhost ve sunucu ve sunucu egzoz üzerinde farklıdır. –
Öneriniz için teşekkürler. Bellek sınırını 96M'ye yükselttim, ancak bu sadece $ client-> setGlobalDebugLevel (0) diye de adlandırdığımda işe yaradı. Hata ayıklama kapalıyken bile 64M yeterli değildi. Sadece kontrol ettim ve web hizmeti ~ 2MB veri ile yanıt veriyor. Bu durumda bellek kullanımının çok yüksek olması garip görünüyor. – Johnvb
Benzer şekilde benzer bir sorunu yaşıyorum. Bir web servisten 5mb veri yanıtım var, nuSOAP'ın işlemek için 256MB'den fazla bellek almak istediği. – Travis