使用PHP SoapClient,尝试从http://localhost到http://mysite.com.


Using PHP SoapClient, Trying to Chande XSD from http://localhost to http://mysite.com

我正试图使用PHPs SoapClient使用WCF中的WSDL。使用以下代码时

$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正在重定向到WSDL=wsdl0文件的http://localhost:7575。。。那么所有XSD位置也都列出了http://localhost:7575....是否有一个PHP Soap函数,我可以使用它将其更改为http://subdomain.xxxxxxx.com:7575/?wsdl=wsdl0

如果您可以控制WCF服务,那么将其配置为生成"扁平化"WSDL可能会更容易。这个SO问题&答案解释了如何将其配置为单个WSDL文档。

如果这不可能,你可以让他们(或者可能由你自己,在本地)手动构建一个WSDL文档,并让他们在自己的网站上托管它,这样你的PHP客户端就可以按原样使用它。