我们在IIS中安装的SSL Web服务器下有一个WCF服务。 Web服务是使用.NET 3.5和WCF 3.0创建的。 我们可以使用.NET 3.5客户端轻松访问它。
让我们调用发布服务的URL:
https://my-server.com/testservice.svc?wsdl
我们需要进行概念验证,以检查是否可以使用PHP客户端访问它。我曾尝试使用NuSOAP或PHP的标准SoapClient,但在这两种情况下我都会遇到异常。这是我的代码:
<?php
$wsdl = 'https://my-server.com/testservice.svc?wsdl';
$client = new SoapClient($wsdl);
?>
这条消息给我一个例外:
错误:sendSms:SoapFault异常:[WSDL] SOAP-ERROR:解析架构:无法从C:\ localhost \ test.php中的“https://my-server.com/testservice.svc?wsdl”导入架构:5堆栈跟踪:#0 C :\ localhost \ test.php(5):SoapClient-&gt; SoapClient('https://my-serv ...')#1 {main}“
有什么想法吗?我做错了什么?
答案 0 :(得分:0)
http://weblogs.asp.net/gunnarpeipman/archive/2007/09/17/using-wcf-services-with-php.aspx
我目前正在调查此事,希望这有助于你
答案 1 :(得分:0)
一切看起来都是正确的,似乎它会起作用,当然这是SOAP能够从其他语言进行调用的重点。
也许尝试使用NuSoap或PEAR Soap_Client,这样你就可以设置一个断点或者只是从服务器转储原始输出?如果服务器返回错误,那可能会给你一些线索。如果服务器似乎正在输出有效的SOAP响应,那么可能是您的Web服务有一些复杂的args对象类型或返回值导致PHP窒息?
答案 2 :(得分:0)
根据this问题,您必须为目录“C:/ Windows / Temp”授予IIS_IUSERS访问权限。
答案 3 :(得分:0)
在这里晚了聚会,但是请确保在使用AddServiceEndpoint设置WCF服务时使用的是 BasicHttpBinding ,而不是 WebHttpBinding 。