wcf使用Flattened WSDL从WCF服务中提取wsdl

时间:2009-10-21 17:56:42

标签: wcf wsdl

我有一个wcf Web服务,我需要为客户端提供wsdl文件。

以前我在.dll上使用了svcutil,一切都很好。

但是,最近我将工厂实现为Flaten wsdl文件(re:http://wcfextras.codeplex.com/)。

我的问题是这样的:无论如何使用.svc上的svcutil来提取Flattened .WSDL文件,或者当它在本地webdev服务器上运行以检索.WSDL文件时,可能以某种方式点击Web服务?

据我所知,如果我要导航到我的本地Web开发服务器(http://localhost:2916/Service.svc?wsdl),如果我要查看源并将其保存为.wsdl,这是错误的,不会提供所有相关信息。

注意:请参阅下文,了解如何在.svc文件中使用Factory ....

<% @ServiceHost Factory="CompanyName.ServiceModel.Extensions.Description.FlatWsdlServiceHostFactory" language=c# Service="CompanyName.WebServices.Service"%> 

谢谢, 史蒂文

1 个答案:

答案 0 :(得分:6)

是的,您仍然可以使用svcutil从服务中提取WSDL,即使您安装了扩展WSDL的扩展程序。

要从正在运行的服务下载元数据文档,请使用以下命令:

svcutil /t:metadata http://service/metadataEndpoint

您需要将您的网址指向配置中定义的元数据端点,例如定义为使用“mexHttpBinding”或“mexTcpBinding”和“IMetadataExchange”合同的端点。

如果您没有定义任何元数据交换端点,显然您将无法检索该信息。