2009-12-19 113 views
4

我有一个WCF webservice,我可以通过basicHttp连接到它,但不是wsHttp。我尝试通过wshttp通过以下方式与它联系:通过wsHttpBinding在PHP中调用WCF WebService

$service = new SoapClient 
("http://service.companyname.local:6666/Service/?wsdl", 
array(
     "location" => "http://service.companyname.local:6666/Service/WCF", 

    "trace" => true, 
    'soap_version' => SOAP_1_2 
    ) 
); 

对SoapClient构造函数的调用返回正常。当我尝试使用$ client-> FunctionName调用一个时,页面刚好在那里加载了一段时间,并最终返回错误“Error Fetching http headers”。这应该是什么意思,我该如何解决它? (消费从.Net客户端服务完美的作品。)

回答

6

上的wsHttpBinding的default config采用先进的WS-Security和WS-Addressing的功能,是不是被香草PHP SoapClient所理解。还有其他PHP可访问的SOAP客户端可以工作(例如Apache Axis2 + Rampart/C),或者您可以尝试关闭一些不兼容的wsHttpBinding功能(邮件安全性可能是第一个)。并不是说它不起作用,但是你可能需要一些试验性的错误才能使所有的工作都正确。

0

我最后一次检查,PHP不支持wsHttpBinding

+0

Svetlozar,你在哪里检查?你写了一些代码,看看谷歌,并得到我一样?你检查了PHP文档吗?一些邮件列表?如果不能完成,我想知道为什么它不能完成。 – 2009-12-19 19:22:59

+2

同意,这个清晰的声明有一些实质内容是很好的。 PHP和WCF是我正在努力的一个领域,网络上有很多解决方法,似乎是人们“摆弄”的结果,直到他们开始工作,但迄今为止还没有人能够识别出继续 - 确切地说明交互中的问题。 – Xcalibur 2011-08-16 03:10:55