【问题标题】:What is the best way to download all of the WSDL files exposed by a WCF service?下载 WCF 服务公开的所有 WSDL 文件的最佳方法是什么?
【发布时间】:2010-09-22 03:32:39
【问题描述】:

下载由 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 中。

【问题讨论】:

    标签: .net wcf web-services soap wsdl


    【解决方案1】:

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

    更新

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

    【讨论】:

    • 链接没有过时 - 如果您使用 Java,该解决方案是一个很好的解决方案。
    • 我不是这个意思。我在尝试链接时遇到 404 或 DNS 错误,所以我永远无法阅读解决方案。网站显然又恢复了,所以我的评论不再有效......
    • 链接又死了。请您尽可能更新您的答案以包含相关信息,因为我们是encouraged to do to avoid this issue..
    【解决方案2】:

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

    【讨论】:

    • 谢谢伯纳德。有一段时间没有做任何 WCF - 你有参考吗?如果您能提供答案,我会将您的答案标记为已接受。
    • @ThomasBratt 你能澄清一下引用的意思吗?
    • @Bernard 他的意思是指向 MS 页面的链接,上面说是这样。
    • 您好 Thomas 和 @RegEdit 最新版本 Framework 4.0 的 disco.exe 文档页面 msdn.microsoft.com/en-US/library/cy2a3ybs(v=vs.100).aspx 说:此主题特定于旧技术。现在应该使用 Windows Communication Foundation 创建 XML Web 服务和 XML Web 服务客户端。 svcutil 是 WCF 相关工具的一部分msdn.microsoft.com/en-us/library/aa347733(v=vs.110).aspx希望这可以澄清事情。
    【解决方案3】:

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

    【讨论】:

    • codeplex 上优秀的 WCFExtras 项目也可以用来生成单个 wsdl 文件。易于使用,在这里找到它 - wcfextras.codeplex.com
    【解决方案4】:

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

    【讨论】:

    • 抱歉这么笨,怎么下载呢?
    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多