【问题标题】:Problem regarding consuming php web service in c# Desktop application关于在 c# 桌面应用程序中使用 php web 服务的问题
【发布时间】:2011-01-04 23:38:10
【问题描述】:

当我尝试使用该应用程序时,我正在开发一个 c# 桌面应用程序并使用在 php 应用程序中开发的 webservies。我只是添加了该网络服务的网络参考,并尝试通过以下代码访问

WebReference.TestWSDL pdl = new testingApp.WebReference.TestWSDL();
string copy = pdl.verify("testing");

当我尝试调用方法验证时它会引发错误。错误是

可能的 SOAP 版本不匹配:信封命名空间 http://schemas.xmlsoap.org/wsdl/ 出乎意料。期待http://schemas.xmlsoap.org/soap/envelope/。

网络服务链接就像

http://171.139.101.12/code/index.php/webservice/wsdl

【问题讨论】:

  • 也许您的 WSDL 是使用无效命名空间生成的?查看生成的 Web 服务文件并尝试将名称空间更改为预期的名称。

标签: c# php web-services desktop-application


【解决方案1】:

您遇到的错误是通知您,当您调用 Web 服务时,您将获得服务的 WSDL(Web 服务定义语言) - 这是描述服务功能的元数据,但实际上不能用于调用服务。通常,您通过将“?wsdl”或“wsdl”附加到服务 URI 来访问 WSDL。

您尝试使用的网络服务有两个元素。

实际服务存在于:

http://171.139.101.12/code/index.php/webservice

描述它的元数据,Visual Studio 通过 wsdl.exe 用于生成代理,位于此处:

http://171.139.101.12/code/index.php/webservice/wsdl

您需要编辑 Web Reference 的属性并相应地更新地址。或者,您可以更改 pdl 变量的属性,并在代码中更改端点。

【讨论】:

  • 这个 Web 服务在 php 应用程序中表现良好,但是当我们从 .net 应用程序调用时它给出了异常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2017-02-17
相关资源
最近更新 更多