Как создать один файл WSDL из существующей службы WCF? - PullRequest
6 голосов
/ 07 марта 2011

Как создать один плоский файл WSDL (без внешних ссылок изнутри) из существующей службы WCF? Этот WSDL будет использоваться (импортироваться) в более старой технологии программирования, которая поддерживает только BasicHttpBinding. Пожалуйста, адресуйте свой ответ новичку.

Ответы [ 2 ]

20 голосов
/ 28 декабря 2011

Теперь вы можете сделать это изначально в .net 4.5 (бета). Существует опция (? SingleWsdl вместо? Wsdl) для указания службе выводить все в одном документе wsdl. Больше информации о новинках здесь: http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx

13 голосов
/ 07 марта 2011

Я тоже должен был это сделать.И я использовал библиотеку WSDLExtras.Это не слишком большая сделка.

Вот пошаговая инструкция по его использованию:

  1. Загрузите 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. Использование поведения конечной точки для конечной точки обслуживания.

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

Этоработал нормально для меня.Вы также можете загрузить полный пример со страницы проекта WCFExtras: ProjectPage

Редактировать: Ради полноты: вы можете использовать ''? SingleWsdl ''параметр запроса начиная с .NET 4.5, как указано в ответе Irwins.Смотрите ссылку, которую он разместил для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...