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

时间:2014-08-20 20:29:36

标签: php .net soap integration

我正在尝试使用SOAP将PHP门户与CRM(微软动态.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的很多解决方案。 如果有人能帮我解决这个问题或者更多地了解情况,那么这是我第一次尝试这样的事情。感谢

2 个答案:

答案 0 :(得分:0)

我发现了问题。

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

答案 1 :(得分:0)

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

但是,问题出在底层:您的Web服务器必须能够从自身访问Web服务。

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

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