WSDL.exe 工具的 /serverInterface 和 /server 选项有啥用

Posted

技术标签:

【中文标题】WSDL.exe 工具的 /serverInterface 和 /server 选项有啥用【英文标题】:What is the use of the /serverInterface and /server option for the WSDL.exe toolWSDL.exe 工具的 /serverInterface 和 /server 选项有什么用 【发布时间】:2013-05-02 08:17:58 【问题描述】:

一般来说。使用asp.net工具WSDL.exe工具,我认为从wsdl文件生成asp.net代码的方式有3种。

    默认输出生成客户端代理类。 生成抽象类代码。(添加/server选项) 生成接口代码。(添加/serverInterface

据我了解,1 是生成一个客户端代理类,它可以帮助处理客户端 Web 服务的请求和响应。

至于 2 和 3 ,我相信实际上它们是用来为服务器端生成代码的,当你想从生成的抽象类或接口中实现自己的 Web 服务时。

但我不确定我的理解是否正确。希望熟悉的人帮忙验证一下。如有不妥,请指正。谢谢。

【问题讨论】:

ASMX 是一项遗留技术,不应用于新开发。 WCF 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum。 @JohnSaunders 感谢您的建议 +1。我会考虑从 ASMX 迁移到 WCF。这将是另一个问题。 【参考方案1】:

首先,正如约翰所说,如果可能,请使用WCF。

不过,您是对的,当您有一个现有的 Web 服务 WSDL 文档时,/server/serverinterface 用于为服务器端组件生成代码。

虽然对于许多 ASP.Net 开发人员来说,Web 服务实现是第一位的,并且用于生成 WSDL,但您可能有一个需要在 ASP.Net 中实现的 Web 服务的现有 WSDL 文档,例如正在迁移到新平台的旧式 Web 服务。在这种情况下,这两个开关用于帮助生成与现有 WSDL 兼容的 Web 服务,以便客户端可以使用您的 ASP.Net Web 服务而无需重新使用 WSDL(这通常需要在该客户端中更改代码) )。

当我拥有用于​​ Web 服务的 WSDL 时,我自己之前曾使用此功能创建存根 Web 服务以进行测试,但是无法针对实际的 Web 服务实现进行测试。

【讨论】:

对,在我的场景中,我必须实现一个与现有 WSDL 兼容的 Web 服务。这意味着客户端无需更改任何现有代码即可使用新创建的 Web 服务。但是既然你谈到了 WCF,我在想是否有像 wsdl.exe 这样的工具来为 WCF 生成服务器端代码?谢谢。 @Joe.wang 见How to use a WSDL file to create a WCF service (not make a call) +1 @Justin 我明白了,svcutil.exewsdl.exe 的升级版 :) how to create a WCF service from a WSDL file using the svcutil.exe。干杯

以上是关于WSDL.exe 工具的 /serverInterface 和 /server 选项有啥用的主要内容,如果未能解决你的问题,请参考以下文章

wsdl.exe 错误:无法从命名空间“...”导入绑定“...”

在自定义构建中自动化 WSDL.exe

解析利用wsdl.exe生成webservice代理类的详解

wsdl.exe 能否生成与 Visual Studio 添加 Web 引用时相同的文件?

svcutil.exe 未为 minOccurs=0 生成指定字段

如何从 wsdl 生成 Web 服务