3

我真的不明白 PHP SOAP 库发生了什么我使用 SOAP 服务,它运行良好,但有时我有众所周知的“致命错误:SOAP-ERROR:解析 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(..... 行之后放置了一个回声,当出现未捕获的错误时,不显示回声

我必须补充一点,我用 'trace' => 1、'exceptions' => 1 调用 SoapClient,

我在 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 错误日志中使用这一行进行崩溃:[notice] Parent: child process exited with status 255 -- Restarting。

  • 我已经安装了visual basic 2012(评估;))
  • 使用了 Visual Basic 命令控制台(开始 > Micrososft Visual Studio 2012 > Visual Studio 工具)
  • 检查父亲键入“cd ***my_path_ contains_apache_bin_directory* * \bin dumpbin /all httpd.exe | find “stack””(是“40000 size of stack reserve”)
  • 增加大小键入 editbin /stack:1048576 httpd.exe
  • 并且不要忘记在 httpd.exe 文件上 PUT ADMINISTRATOR RIGHT + 退出 WANP !!!(因为这个,我失去了一个早上!,editbin 正在返回一个 LINK 错误!!)

-> 这很奇怪,因为在完成此操作后,我有 WSDL 未捕获的错误,但由于几个小时我没有出现这种错误,可能只是我使用的代理列表能够正确连接,..? ?

4

3 回答 3

0

SOAP 扩展做了一些奇怪的事情并覆盖了一个内部 PHP 错误处理程序。这与 Xdebug 的错误覆盖机制有点冲突。不过,请务必包含完整的错误消息,我也许可以从那里更新我的答案。

于 2013-01-31T14:47:53.907 回答
0

这是我得到的详细错误消息 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"
于 2013-02-01T09:48:38.957 回答
0

也许有点晚了,但 Opcache 模块也会干扰 XDebug:https ://xdebug.org/docs/compat

必须禁用它才能使用 NetbeansIDE

于 2020-05-06T16:05:32.467 回答