PHP SoapClient返回SOAP错误:加载本地Web服务时解析WSDL
我试图在本地安装SSR时调用SoapClient。它正在失败和回归: SOAP-ERROR:解析WSDL:无法从“PHP SoapClient返回SOAP错误:加载本地Web服务时解析WSDL,php,reporting-services,xampp,soap-client,Php,Reporting Services,Xampp,Soap Client,我试图在本地安装SSR时调用SoapClient。它正在失败和回归: SOAP-ERROR:解析WSDL:无法从“http://localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl' 我可以把url“http://localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl”并按预期显示XML WSDL 使用上述url调用文件\u get\u内容也失败 我的环境是使用XAMPP的W
http://localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl
'
我可以把url“http://localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl
”并按预期显示XML WSDL
使用上述url调用文件\u get\u内容也失败
我的环境是使用XAMPP的Windows 7
我相信XAMPP web服务器无法访问该文件/位置
在hosts文件中,我放了:
127.0.0.1本地主机:8080/ReportServer
在httpd-vhosts.conf中,我输入了:
NameVirtualHost *
<VirtualHost *>
DocumentRoot "C:\xampp\htdocs\SBSProductionDatabase"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer"
ServerName localhost:8080/ReportServer
<Directory "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
那么,当您在浏览器中浏览“localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl”或仅浏览“localhost:8080/ReportServer”时会发生什么 它起作用了。xml wsdl按预期显示,仅针对我获得的SSRS报表服务器页面/站点的url,您是否尝试过以下测试示例?是的。基本上,我正在尝试调用新的SSRSReport(新凭证(UID,PWD),SERVICE_URL);,最终将尝试调用SoapClient,正如我上面所说的。由于SoapClient()失败,对SSRSReport的调用失败。我看到了一个突出的问题,那就是XAMPP没有配置成在我的机器上本地访问SSRS网站。尝试在中提到的方法2,并在重新尝试之前反弹您的机器一次。如果这没有帮助,请按照此KB在RS端启用详细和HTTP日志记录,让我们看看请求是否到达RS进程\n我使用的是XAMPP,而不是IIS。那么你的建议对我有用吗?我得到的完整警告是:(!)致命错误:未捕获的SoapFault异常:[WSDL]SOAP-error:解析WSDL:无法从“”加载:未能加载C:\xampp\htdocs\sbsprProductionDatabase\SSRS\GetReports.php中的外部实体。php:61堆栈跟踪:#0 C:\xampp\htdocs\sbsprProductionDatabase\SSRS\GetReports.php(61):SoapClient->SoapClient('…',Array)#1{main}在C:\xampp\htdocs\sbsprProductionDatabase\SSRS\GetReports.php的第61行抛出,我和您一样有问题,请检查您是否可以帮助我
$client = new SoapClient("http://localhost:8080/ReportServer/ReportExecution2005.asmx?wsdl",
array('login' => "domain\userid",
'password' => "password"));