PHP - SoapClient::SoapClient 无法打开流:连接被拒绝

Posted

技术标签:

【中文标题】PHP - SoapClient::SoapClient 无法打开流:连接被拒绝【英文标题】:PHP - SoapClient::SoapClient failed to open stream: Connection refused 【发布时间】:2014-10-14 08:25:55 【问题描述】:

我正在尝试使用 SOAP 将 php 门户与 CRM(microsoft dynamics .NET)系统集成。

这是我的代码的一部分:

$client = new SoapClient("http://XX.XXX.X.XX:5050/host.svc?wsdl");

此行返回 2 个错误

Warninig: Message: SoapClient::SoapClient(http://80.248.5.35:5050/host.svc?wsdl): failed to open stream: Connection refused

 Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load   from 'http://XX.XXX.X.XX:5050/host.svc?wsdl' : failed to load external entity 

在浏览器中打开链接并在我的本地计算机(localhost)中运行此代码也可以。 我试过file_get_contents("http://XX.XXX.X.XX:5050/host.svc?wsdl"); 但这会返回一条警告消息

Message: file_get_contents(http://80.248.5.35:5050/host.svc?wsdl): failed to open stream: Connection refused

我已经尝试了很多来自 *** 的解决方案。 如果有人可以帮助我解决这个问题或进一步了解情况,这是我第一次尝试这样的事情。谢谢

【问题讨论】:

【参考方案1】:

我发现了问题。

我的网络服务器拒绝我通过任何端口而不是默认端口进行传出连接。我通过将 Web 服务更改为 ISS 上的默认端口来修复它

【讨论】:

【参考方案2】:

我也对这个“无法打开流”错误感到沮丧,但从尝试从网络连接到网络服务的角度来看。

但是,下面的问题是相同的:您的网络服务器需要能够从自身访问网络服务。

如果您使用的是 Windows 服务器,我的解决方案:在您的 Windows 主机文件中添加一个条目,以允许在服务器上为您用于 Web 服务的外部域进行环回。

因此,请打开您的“主机”文件,该文件通常位于 C:\Windows\System32\drivers\etc 等位置。然后添加一行: <machine LAN IP like 192.168.1.1 or 127.0.0.1> <domain.ofwebsevice.com>

【讨论】:

感谢您为一个老问题提供帮助。这可能会在未来使其他人受益。您是否介意改写“服务器”一词的用法,以使它们更具体地指向您所指的服务器(就像您说“Web 服务器”时所做的那样)?这应该可以提高答案恕我直言的清晰度。 @Ricardo:好的,谢谢。试图澄清....

以上是关于PHP - SoapClient::SoapClient 无法打开流:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

php send.php php邮件模板#php

IntelliJ IDEA 11编辑php是,支持php文件名为.php5和.php4,如何设置能让其也支持.php呢?

如何从php5升级到php7

请问php中如何调用php文件中的内容?

php [php:PHPMailer示例] php库“PHPMailer”示例。 #PHP

php基础