如何从现有的WCF服务创建单个WSDL文件?

时间:2011-03-07 06:39:58

标签: wcf visual-studio-2010 soap wsdl

如何从现有WCF服务创建单个平面WSDL文件(内部没有外部引用)?此WSDL将被使用(导入)为仅支持BasicHttpBinding的旧编程技术。请解答您对初学者的回答。

2 个答案:

答案 0 :(得分:19)

您现在可以在.net 4.5(测试版)中本机执行此操作。有一个选项(?singleWsdl而不是?wsdl)用于告诉服务在单个wsdl文档中输出所有内容。有关新内容的更多信息,请访问:http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx

答案 1 :(得分:13)

我也必须这样做。我使用了WSDLExtras库。这不是太大的交易。

以下是使用它的分步说明:

  1. here下载WCFExtras,解压缩并在VS中添加对它的引用。

  2. 添加对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>
    
  3. 将扩展名添加到您的终端行为,并将singleFile属性设置为true

    <endpointBehaviors>
         <behavior name="singleFileEndpointBehavior">
             <wsdlExtensions singleFile="True" />
         </behavior>
    </endpointBehaviors>
    
  4. 使用endpointbehavior作为服务端点。

    <endpoint address="YourEndPoint/Address" binding="YourBinding" behaviorConfiguration="singleFileEndpointBehavior" contract="IYourContract">
    
  5. 这对我来说很好。您还可以从WCFExtras项目页面下载完整的示例:ProjectPage

    修改 为了完整起见:您可以使用&#39;&#39;?singleWsdl&#39;&#39;查询参数自.NET 4.5以来,如Irwins所述。有关详细信息,请参阅他发布的链接。