【问题标题】:PHP - SoapClient::SoapClient failed to open stream: Connection refusedPHP - SoapClient::SoapClient 无法打开流:连接被拒绝
【发布时间】: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

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

【问题讨论】:

    标签: php .net soap integration


    【解决方案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:好的,谢谢。试图澄清....
      猜你喜欢
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 2013-03-27
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多