我正在尝试使用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的很多解决方案。 如果有人能帮我解决这个问题或者更多地了解情况,那么这是我第一次尝试这样的事情。感谢
答案 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>