如何从现有WCF服务创建单个平面WSDL文件(内部没有外部引用)?此WSDL将被使用(导入)为仅支持BasicHttpBinding的旧编程技术。请解答您对初学者的回答。
答案 0 :(得分:19)
您现在可以在.net 4.5(测试版)中本机执行此操作。有一个选项(?singleWsdl而不是?wsdl)用于告诉服务在单个wsdl文档中输出所有内容。有关新内容的更多信息,请访问:http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx
答案 1 :(得分:13)
我也必须这样做。我使用了WSDLExtras库。这不是太大的交易。
以下是使用它的分步说明:
从here下载WCFExtras,解压缩并在VS中添加对它的引用。
添加对Web.config / App.config的引用,如下所示:
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="wsdlExtensions" type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
将扩展名添加到您的终端行为,并将singleFile
属性设置为true
<endpointBehaviors>
<behavior name="singleFileEndpointBehavior">
<wsdlExtensions singleFile="True" />
</behavior>
</endpointBehaviors>
使用endpointbehavior作为服务端点。
<endpoint address="YourEndPoint/Address" binding="YourBinding" behaviorConfiguration="singleFileEndpointBehavior" contract="IYourContract">
这对我来说很好。您还可以从WCFExtras项目页面下载完整的示例:ProjectPage
修改强> 为了完整起见:您可以使用&#39;&#39;?singleWsdl&#39;&#39;查询参数自.NET 4.5以来,如Irwins所述。有关详细信息,请参阅他发布的链接。