这是我得到的错误:
致命错误:未捕获的SoapFault异常:[WSDL] SOAP-ERROR:解析 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');
我做了什么:
从我的本地主机或网络浏览器访问此确切资源也可以。
访问其他没有的资源:105个工作(如果这可能很重要)。
试图做socket_create_listen(105)
但得到“权限被拒绝”错误。然后尝试通过WHM启用端口105,将防火墙添加到端口列表(IPv4,IPv4,TCP和UDP)。所有这些仍然没有用,并且没有来自105端口的响应。
启用allow_url_fopen。
default_socket_timeout设置为300。
尝试了这个答案:https://stackoverflow.com/a/7118802(我更改的参数是URL和端口 - 我更改为105.其他参数我保持完全相同,也许这是一个错误?)
根据其他一些SO答案,尝试使用https,但不起作用。尝试添加www。但该URL甚至不存在。
根据这个回答尝试回显file_get_contents():https://stackoverflow.com/a/14729295/525445 - 它给了我一个空白的屏幕。
致命错误:未捕获的SoapFault异常:[HTTP]无法连接 宿主
答案 0 :(得分:0)
我今天遇到了完全相同的问题。在我的情况下,原因是更高的一些步骤。这是一个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本身之上的层。使用浏览器,我可以访问该地址,就像你一样。所以也许系统中有一个控制开关,可以杀死请求。