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

问题描述:

什么是下载WCF服务公开的所有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中。

它看起来像微软这样做提供Disco.exe

+0

对不起这么愚蠢的,但如何下载呢? – 2014-07-02 20:37:03

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

+0

codeplex上的优秀WCFExtras项目也可用于生成单个wsdl文件。死易于使用,在这里找到它 - http://wcfextras.codeplex.com/ – Shuft 2011-11-03 16:16:45

同时,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

+0

谢谢伯纳德。有一段时间没有做过任何WCF - 你有参考吗?如果您能提供答案,我会将您的答案标记为已接受。 – 2012-11-14 14:21:34

+0

@ThomasBratt你能澄清你的意思吗? – 2012-11-20 15:49:16

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

更新

博客里的代码片段被证明不再可用。幸运的是,Pablo Diez基于我的博客文章创建了一个小型项目并将其上传到github。它可现在的位置:https://github.com/pablod/xsd-downloader