如何创建 PHP SOAP 客户端来调用 SSL 下的 WCF Web 服务?

问题描述 投票:0回答:4

我们在 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-错误:解析架构:无法从 C:\localhost est 中的“https://my-server.com/testservice.svc?wsdl”导入架构。 php:5 堆栈跟踪: #0 C:\localhost est.php(5): SoapClient->SoapClient('https://my-serv...') #1 {main} "

有什么想法吗?我做错了什么?

php wcf soap ssl
4个回答
0
投票

http://weblogs.asp.net/gunnarpeipman/archive/2007/09/17/using-wcf-services-with-php.aspx

我目前也在研究这个问题,希望对你有帮助


0
投票

一切看起来都是正确的,并且似乎可以工作,这当然是 SOAP 能够从其他语言进行调用的要点。

也许尝试使用 NuSoap 或 PEAR Soap_Client,这样您就可以设置断点或仅转储服务器的原始输出?如果服务器返回错误,这可能会给您一些线索。如果服务器似乎正在输出有效的 SOAP 响应,则可能是您的 Web 服务具有一些复杂的参数对象类型或返回值,导致 PHP 阻塞?


0
投票

根据this问题,您必须授予目录“C:/Windows/Temp”的 IIS_IUSERS 访问权限。


0
投票

虽然晚了,但请确保当您使用 AddServiceEndpoint 设置 WCF 服务时,您使用的是 BasicHttpBinding 而不是 WebHttpBinding

© www.soinside.com 2019 - 2024. All rights reserved.