Использование PHP SoapClient, попытка изменить XSD с http://localhost на http://mysite.com

Я пытаюсь использовать WSDL из WCF, используя PHP SoapClient. При использовании следующего кода

$client = new SoapClient('http://subdomain.xxxxxxx.com:7575/?WSDL');

Я получаю следующую ошибку:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load     from 'http://localhost:7575/?wsdl=wsdl0' : failed to load external entity "http://localhost:7575/?wsdl=wsdl0"

Для файла конфигурации службы для WSDL конкретный порт, который использует WSDL, указывает:

    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:7574" />
        <add baseAddress="http://localhost:7575" />
      </baseAddresses>
    </host>

Проблема в том, что WSDL перенаправляется на http://localhost:7575 для файла wsdl=wsdl0... тогда все местоположения XSD также перечисляют http://localhost:7575.... есть ли функция PHP Soap, которую я могу использовать, чтобы изменить это на http://subdomain.xxxxxxx.com:7575/?wsdl=wsdl0


person JoeyH    schedule 27.03.2012    source источник


Ответы (1)


Если у вас есть контроль над службой WCF, может быть проще настроить ее для создания "сглаженного" WSDL. Этот SO вопрос и ответ объясняет, как настроить его на один документ WSDL.

Если это невозможно, возможно, вы можете попросить их (или, возможно, вас, локально) вручную создать один документ WSDL и разместить его на своем сайте, чтобы ваш PHP-клиент мог использовать его как есть.

person Sixto Saez    schedule 27.03.2012