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

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 technology that only supports BasicHttpBinding. Please address your answer to a beginner.

Answers


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.


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


Need Your Help

Trigger event on new line in content editable div

jquery html css angularjs contenteditable

I am trying to listen for an event that indicates a new line has been created in a content editable div. The purpose is to eventually show a user some options each time a new empty line is created ...

C# WPF - How to change which window opens first

c# wpf windows

This is a very, very simple question, but I can't seem to find the answer. I have a WPF application that I've made a bunch of windows for. I've decided now that I want a different window to be the ...