У меня проблемы с вызовом веб-службы, которую я настроил из PHP. Запутанный адрес http://XXX.XXX.XXX.XXX/test.asmx?wsdl
в приведенном ниже сообщении об ошибке возвращает действительный WSDL. Я успешно пытался вызвать его как веб-сервис с использованием клиента VB.net, но когда я вызываю его из PHP в Debian, я получаю следующее сообщение:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL:
Couldn't load from 'http://XXX.XXX.XXX.XXX/test.asmx?wsdl'
in /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php:101
Stack trace:
#0 /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php(101):
SoapClient->SoapClient('http://XXX.XXX.XXX.XXX/', Array) #1 {main} thrown
in /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php
on line 101
В чем может быть проблема? Я включил свой код для веб-службы и PHP-клиента ниже.
Веб-сервис:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
...
' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function
End Class
PHP-клиент:
require_once($_SERVER['DOCUMENT_ROOT']."/catalog/fomeus/includes/soap/nusoap.php");
$objClient = new soapclient("http://XXX.XXX.XXX.XXX/test.asmx?wsdl",
array('trace' => 1, 'exception' => 0, 'cache_wsdl' => 0));
print_r($objClient -> HelloWorld());
Я использую PHP версии 5.2.6, если это поможет. Я просматривал множество постов на разных форумах, пытаясь выяснить, в чем проблема. У многих людей была такая же проблема, но ни одно из найденных мной решений не помогло мне. Любая помощь будет принята с благодарностью.