繁体   English   中英

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从 '' 加载:无法加载外部实体

[英]Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from '' : failed to load external entity

这是我得到的错误:

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP 错误:解析 WSDL:无法从“ http://subdomain.example.com:105/Example/Example.asmx?WSDL ”加载:无法加载外部实体“ http://subdomain.example.com:105/Example/Example.asmx?WSDL

由于这一要求:

$client = new SoapClient('http://subdomain.example.com:105/Example/Example.asmx?WSDL');

我试过的:

  1. 从我的本地主机或 Web 浏览器访问这个确切的资源也有效。

  2. 访问没有 :105 的其他资源有效(如果这很重要)。

  3. 尝试执行socket_create_listen(105)但得到“权限被拒绝”错误。 然后尝试通过将其防火墙添加到端口列表(IPv4、IPv4、TCP 和 UDP)来通过 WHM 启用端口 105。 所有这些仍然不起作用,端口 105 也没有响应。

  4. allow_url_fopen 开启。

  5. default_socket_timeout 设置为 300。

  6. 试过这个答案: https : //stackoverflow.com/a/7118802 (我更改的参数是 URL 和端口 - 我更改为 105。我保留的其他参数完全相同,也许这是一个错误?)

  7. 根据其他一些 SO 答案,尝试使用 https 代替,但不起作用。 尝试添加www。 但该 URL 甚至不存在。

  8. 按照这个答案尝试回显 file_get_contents(): https : //stackoverflow.com/a/14729295/525445 - 它给了我一个空白屏幕。

  9. 试过这个: 致命错误:未捕获的 SoapFault 异常:[WSDL]导致

致命错误:未捕获的 SoapFault 异常:[HTTP] 无法连接到主机

  1. 尝试使用 cURL 获取它,如下所示: https : //stackoverflow.com/a/5311925/525445我得到的响应是 bool(false)

我今天遇到了完全相同的问题。 就我而言,原因在于更高的一些步骤。 这是一个 magento 安装,它不起作用,因为我没有将 api 调用列入白名单(即使我将我的 IP 列入白名单,奇怪的是还不够)。 对我来说,修复:

if (file_exists($maintenanceFile) && !in_array($ip, $allowed) && !strstr($_SERVER['REQUEST_URI'], 'v2_soap')) {
    include_once dirname(__FILE__) . '/errors/503.php';
    exit;
}

做到了。

如果您不使用 magento,这对您来说仍然很有趣,正如它所显示的那样,原因可能在于索引或 htaccess 文件,wdsl 本身之上的层。 使用浏览器,我可以访问地址,就像你一样。 所以也许你的系统中有一个控制开关,它会终止请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM