What is the best way to download all of the WSDL files exposed by a WCF service?

╄→гoц情女王★ 提交于 2019-12-18 14:16:36

问题


What is the best way to download all of the WSDL files exposed by a WCF service?

For example, the root WSDL file references the following other WSDL files:

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

Ideally it would be possible to automate the download so that every time the WSDL changes it would be easy to distribute the files to a customer or incorporate into a document/SDK.


回答1:


Meanwhile, disco.exe is considered obsolete technology by Microsoft.

You can use svcutil.exe /t:metadata to achieve the same in the WCF age. Additional benefits are support for additional features, eg WS-Policy.

Save schema from URL:

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

Save schema from assembly, eg in automated build:

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




回答2:


If you own the service, another interesting option you could explore is using Christian Weyer's FlatWSDL behavior, which will force WCF to generate everything in a single WSDL document, which should make it a lot easier for you to distribute it.




回答3:


It looks like Microsoft provide Disco.exe for doing this.




回答4:


There is a simple code snippet that makes it possible downloading a WSDL and all the belonging XSD files for offline use (for example for code generation).

Update

The blog where the code snippet was shown is not available anymore. Luckily, Pablo Diez created a small project based on my blog post and uploaded it to github. It is available now here: https://github.com/pablod/xsd-downloader



来源:https://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!