【问题标题】:How to use proxy class generated by WSDL in web service?如何在 Web 服务中使用 WSDL 生成的代理类?
【发布时间】:2011-03-12 14:48:02
【问题描述】:

免责声明:我对网络服务的经验/知识非常有限。

有一个现有的 Web 服务 WSDL,我已使用 wsdl.exe 对其进行逆向工程以创建 C# 代理类。

我使用 Visual Studio 2008 创建了一个默认的 Web 服务模板。

如何引用生成的代理类,以便它可以在 Web 服务中工作?

例如 -> 调用 http://localhost/webservice/service.asmx?WSDL 将从代理类返回详细信息。

【问题讨论】:

  • 您是在尝试编写一个调用由您拥有的 WSDL 定义的 Web 服务的应用程序,还是您正在尝试编写一个提供 WSDL 中定义的接口的 Web 服务,以便其他东西可以打电话给你的服务?
  • @Saxon - 我试图只做当前网络服务所做的事情,但使用当前错误的固定路径(URL、文件)。
  • 现有路径有什么问题?您能否举例说明现有服务上的路径是什么样的,以及您希望该路径是什么样的?
  • @Saxon - 当路径应该引用 localhost/webserviceNEW1 时,路径引用像 localhost/webservice1 这样的地址

标签: c# asp.net .net-3.5 wsdl web-services


【解决方案1】:

首先,您不应该使用 ASMX Web 服务。 Microsoft 现在认为它们是“遗留技术”,并建议所有新的 Web 服务客户端或服务开发都使用 WCF 完成。不要一开始就处于劣势。

其次,使用 WSDL 的常规方法是使用 Visual Studio 中的“添加 Web 引用”命令(如果您使用的是 WCF,则为“添加服务引用”)。这会为您生成代理类并将它们添加到您的项目中。

从您的问题中我不确定这是否是您想要的,因为您首先谈论 WSDL,然后谈论“默认 Web 服务模板”。 “默认网络服务模板”是什么意思?


尝试使用 svcutil.exe 程序(不是 WSDL.EXE),如下所示:

svcutil YourWsdl.WSDL /language:C# /d:subdirectory

这应该会在子目录中生成一些文件。查看 .cs 文件,其中一个将包含一个接口,即服务合同。那是您的服务必须实现的接口。查看您的“默认”WCF 服务应用程序,您会发现它执行相同的操作 - 生成由服务实现的接口。

【讨论】:

  • 按照您的建议,我创建了一个 WCF 服务项目,然后添加了 Web 参考。使用新添加的网络参考还需要哪些其他基本步骤?
  • @John:我仍然不清楚您要做什么。您是否正在尝试创建一个可以调用另一个 Web 服务的 Web 服务?
  • 我正在尝试重新创建一个我没有源代码的现有 Web 服务。 Web 服务接收 XML 消息,然后将它们保存到接收文件夹上的文件夹中。我主要只是想弄清楚创建 Web 服务需要哪些元素。
  • @John:好的,这就是混乱。 WSDL 通常用于创建 Web Service 客户端,而不是创建服务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多