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

时间:2008-11-13 09:41:37

标签: .net wcf web-services soap wsdl

下载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 个答案:

答案 0 :(得分:31)

与此同时,disco.exe被微软视为过时的技术。

您可以使用svcutil.exe /t:metadata在WCF时代实现相同目标。其他好处是支持其他功能,例如WS-Policy。

从网址保存架构:

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

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:3)

看起来Microsoft提供Disco.exe来执行此操作。

答案 3 :(得分:2)

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

<强>更新

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