19

下载 WCF 服务公开的所有 WSDL 文件的最佳方法是什么?

例如,根 WSDL 文件引用以下其他 WSDL 文件:

<xsd:import schemaLocation="http://localhost:80/?xsd=xsd0" namespace="http://tempuri.com"/>
<xsd:import schemaLocation="http://localhost:80/?xsd=xsd1" namespace="http://tempuri.com"/>

理想情况下,可以自动下载,以便每次 WSDL 更改时都可以轻松地将文件分发给客户或合并到文档/SDK 中。

4

4 回答 4

34

同时,disco.exe 被微软认为是过时的技术。

您可以使用 svcutil.exe /t:metadata在 WCF 时代实现相同的功能。额外的好处是支持额外的特性,例如 WS-Policy。

从 URL 保存架构:

svcutil /t:metadata http://host/pathtomy.svc?wsdl

从程序集中保存模式,例如在自动构建中:

svcutil /t:metadata c:\wcfweb\pathToWcfServiceAssembly.dll

于 2009-12-23T09:24:08.750 回答
6

如果您拥有该服务,您可以探索的另一个有趣的选项是使用 Christian Weyer 的FlatWSDL 行为,这将强制 WCF 在单个 WSDL 文档中生成所有内容,这将使您更容易分发它。

于 2008-11-13T12:47:12.863 回答
3

看起来微软为此提供了Disco.exe 。

于 2008-11-13T10:07:12.943 回答
2

有一个简单的代码片段可以下载 WSDL 和所有所属的 XSD 文件以供离线使用(例如用于代码生成)。

更新

显示代码片段的博客不再可用。幸运的是,Pablo Diez 根据我的博文创建了一个小项目并将其上传到 github。它现在在这里可用:https ://github.com/pablod/xsd-downloader

于 2010-10-04T21:19:54.720 回答