我正在开发一个c#桌面应用程序并使用在我尝试使用该应用程序时在php应用程序中开发的webservies.我只是添加该Web服务的Web引用,并尝试通过以下代码访问 WebReference.TestWSDL pdl = new testing
WebReference.TestWSDL pdl = new testingApp.WebReference.TestWSDL(); string copy = pdl.verify("testing");
当我尝试调用方法验证时,它会抛出错误.错误是
可能的SOAP版本不匹配:信封命名空间http://schemas.xmlsoap.org/wsdl/是意外的.期待http://schemas.xmlsoap.org/soap/envelope/.
和Web服务链接就像
http://171.139.101.12/code/index.php/webservice/wsdl
您遇到的错误是通知您,当您调用Web服务时,您将获得服务的WSDL(Web服务定义语言) – 这是描述服务功能的元数据,但实际上不能用于调用服务.通常,您通过将“?wsdl”或“wsdl”附加到服务URI来访问WSDL.您尝试使用的Web服务有两个元素.
实际服务存在于:
http://171.139.101.12/code/index.php/webservice
描述它的元数据(通过wsdl.exe用于生成代理的Visual Studio)驻留在此处:
http://171.139.101.12/code/index.php/webservice/wsdl
您需要编辑Web引用的属性并相应地更新地址.或者,您可以更改pdl变量的属性,并在代码中更改端点.