Неустранимая ошибка PHP SOAP wsdl и Xdebug

Я действительно не понимаю, что происходит с библиотекой PHP SOAP. Я использую службу SOAP, она работает хорошо, но иногда у меня появляется хорошо известная «Неустранимая ошибка: SOAP-ERROR: Parsing WSDL: ........»

Я читал, что эта ошибка была неуловимой, потому что Xdebug был включен, и что решение состоит в том, чтобы отключить его, чтобы иметь возможность поймать ошибку, ...

но я не работаю! ошибка отображается оранжевым и красным цветом. У вас есть идея ??

(Я использую последнюю версию wamp, я не знаю, как проверить, выбрал ли я 64 или 32 бита, но это apache 2.2.22, php 5.3.13)

Заранее спасибо за помощь ! :)

<?php
xdebug_disable();
try {
  $sc = new SoapClient("some-wrong.wsdl", array('exceptions' => true));
} catch (Exception $e) {
  echo 'Error Caught :-)';
}
?>

Хочу добавить, что:

иногда у меня 2 предупреждения и 1 ошибка

 - Warning: SoapClient::SoapClient -> "failed to open stream ..."
 - Warning: SoapClient::SoapClient -> "failed to load external entity ..."
 - Fatal error: SOAP-ERROR: Parsing WSDL -> "Couldn't load from ..."

а иногда просто фатальная ошибка

Я поместил эхо сразу после строки new SoapClient (..... и когда есть неотловленная ошибка, эхо не отображается

Я должен добавить, что я вызываю SoapClient с 'trace' => 1, 'exceptions' => 1,

и у меня это в журнале ошибок apache (** используется для скрытия)

[Thu Jan 31 16:16:02 2013] [error] [client 127.0.0.1] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://******?wsdl' : Start tag expected, '<' not found\n in D:\\Programmes\\wamp\\www\\******.php on line 144, referer: http://localhost/******.php
[Thu Jan 31 16:16:04 2013] [error] [client 127.0.0.1] PHP Warning:  ||| faultcode: WSDL ||| faultstring: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://******?wsdl' : Start tag expected, '<' not found\n ||| in D:\\******.php on line 201, referer: http://localhost/******.php
[Thu Jan 31 16:16:04 2013] [error] [client 127.0.0.1] PHP Fatal error:  Call to a member function __getLastRequestHeaders() on a non-object in D:\\Programmes\\wamp\\www\\******.php on line 204, referer: http://localhost/******.php

Я редактирую свое первое сообщение, потому что я новый мем и не могу ответить на собственное сообщение раньше, чем через 8 часов

Итак, сегодня утром я изменил размер стека по умолчанию для apache, потому что apache взламывал только эту строку в журнале ошибок apache: [примечание] Родитель: дочерний процесс завершился со статусом 255 - перезапуск.

  • Я установил Visual Basic 2012 (оценка;))
  • использовали командную консоль Visual Basic (Пуск> Micrososft Visual Studio 2012> Инструменты Visual Studio)
  • проверил отца, набрав "cd *** my_path_contain_apache_bin_directory * * \ bin dumpbin / all httpd.exe | find" stack "" (это было "размер резерва стека 40000")
  • увеличьте размер, набрав editbin / stack: 1048576 httpd.exe
  • И не забудьте НАПРАВИТЬ ПРАВО АДМИНИСТРАТОРА в файле httpd.exe + выйти из WANP !!! (Я потерял утро из-за этого!, Editbin возвращал ошибку LINK !!)

-> Это странно, потому что после того, как я это сделал, у меня были неперехваченные ошибки WSDL, но с тех пор, как несколько часов у меня не было такой ошибки, может быть, это просто список прокси, который я использую, которые могут правильно подключаться, ..? ?


person Philippos    schedule 31.01.2013    source источник
comment
ошибка может быть хорошо известна, но все же рекомендуется процитировать все сообщение об ошибке в вопросе. В сообщении об ошибке может быть что-то конкретное, о чем нам нужно знать, чтобы помочь вам.   -  person SDC    schedule 31.01.2013
comment
Хорошо, я просто добавляю ошибку снова, поэтому стек памяти не связан, ...   -  person Philippos    schedule 31.01.2013


Ответы (3)


Расширение SOAP делает некоторые странные вещи и отменяет внутренний обработчик ошибок PHP. Это немного конфликтует с механизмами переопределения ошибок Xdebug. Тем не менее, включите полное сообщение об ошибке, и я, возможно, смогу обновить свой ответ оттуда.

person Derick    schedule 31.01.2013
comment
Итак, я просто обновляю свое сообщение с элементом ошибки, этого достаточно или вам нужны другие вещи? Если да, не могли бы вы сказать мне, где я могу найти нужные вам элементы? еще раз спасибо :) (Вы пишете Дерик на mentis об ошибках PHP?) - person Philippos; 31.01.2013
comment
Здравствуйте, я только что разместил подробное сообщение об ошибке! - person Philippos; 01.02.2013
comment
Дерик, у меня очень быстрый вопрос: если я выключу Xdebug, ошибка будет исправлена? - person Philippos; 01.02.2013

Вот подробное сообщение об ошибке Xdebug, которое я получаю (* *, чтобы скрыть)

( ! ) Warning: SoapClient::SoapClient(http://****?wsdl) [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: failed to open stream: Une tentative de connexion a �chou� car le parti connect� n�a pas r�pondu convenablement au-del� d�une certaine dur�e ou une connexion �tablie a �chou� car l�h�te de connexion n�a pas r�pondu. in D:\Programmes\wamp\www\****.php on line 146
Call Stack
#   Time    Memory  Function    Location
1   0.0013  497672  {main}( )   ..\script gepir3-1.php:0
2   0.6920  695896  SoapClient->SoapClient( )   ..\script gepir3-1.php:146

( ! ) Warning: SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: I/O warning : failed to load external entity &quot;http://****?wsdl&quot; in D:\Programmes\wamp\www\****.php on line 146
Call Stack
#   Time    Memory  Function    Location
1   0.0013  497672  {main}( )   ..\script gepir3-1.php:0
2   0.6920  695896  SoapClient->SoapClient( )   ..\script gepir3-1.php:146

( ! ) Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****.asmx?wsdl' : failed to load external entity "http://****asmx?wsdl" in D:\Programmes\wamp\www\****.php on line 146
Call Stack
#   Time    Memory  Function    Location
1   0.0013  497672  {main}( )   ..\script gepir3-1.php:0
2   0.6920  695896  SoapClient->SoapClient( )   ..\script gepir3-1.php:146

И я не понимаю, почему в моем php.ini этот параметр отключен (автозапуск тоже отсутствует

; XDEBUG Extension

zend_extension = "D:/Programmes/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"

[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "D:/Programmes/wamp/tmp"
person Philippos    schedule 01.02.2013