我有一个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"%>
谢谢, 史蒂文
答案 0 :(得分:6)
是的,您仍然可以使用svcutil
从服务中提取WSDL,即使您安装了扩展WSDL的扩展程序。
要从正在运行的服务下载元数据文档,请使用以下命令:
svcutil /t:metadata http://service/metadataEndpoint
您需要将您的网址指向配置中定义的元数据端点,例如定义为使用“mexHttpBinding”或“mexTcpBinding”和“IMetadataExchange”合同的端点。
如果您没有定义任何元数据交换端点,显然您将无法检索该信息。