How to create a single WSDL file from existing WCF service?

后端 未结 2 2009
小鲜肉
小鲜肉 2020-12-15 13:17

How do I create a single flat WSDL file (with no external references from within) from an existing WCF service? This WSDL will be used (imported) into an older programming t

相关标签:
2条回答
  • 2020-12-15 14:00

    I had to do this, too. And I used the WSDLExtras library. It's not too big of a deal.

    Here is a step by step instruction for using it:

    1. Download the WCFExtras from here, extract it and add a reference to it in VS.

    2. Add a reference to your Web.config/App.config like this:

      <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. Add the extension to your endpoint behavior and set the singleFile attribute to true

      <endpointBehaviors>
           <behavior name="singleFileEndpointBehavior">
               <wsdlExtensions singleFile="True" />
           </behavior>
      </endpointBehaviors>
      
    4. Use the endpointbehavior for your service-endpoint.

      <endpoint address="YourEndPoint/Address" binding="YourBinding" behaviorConfiguration="singleFileEndpointBehavior" contract="IYourContract">
      

    This worked fine for me. You can also download a full example from the WCFExtras project page: ProjectPage

    Edit: For the sake of completeness: You can use the ''?singleWsdl'' query parameter since .NET 4.5 as stated in Irwins answer. See the link he posted for more details.

    0 讨论(0)
  • 2020-12-15 14:13

    You can now do this natively in .net 4.5 (beta). There is an option (?singleWsdl instead of ?wsdl) for telling the service to output everything in a single wsdl document. More info on the new stuff here: http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx

    0 讨论(0)
提交回复
热议问题