Как лучше всего загрузить все файлы WSDL, предоставляемые службой WCF?

Как лучше всего загрузить все файлы WSDL, предоставляемые службой WCF?

Например, корневой файл WSDL ссылается на следующие другие файлы WSDL:

<xsd:import schemaLocation="http://localhost:80/?xsd=xsd0" namespace="http://tempuri.com"/>
<xsd:import schemaLocation="http://localhost:80/?xsd=xsd1" namespace="http://tempuri.com"/>

В идеале можно было бы автоматизировать загрузку, чтобы каждый раз при изменении WSDL можно было легко распространять файлы среди клиентов или включать их в документ / SDK.


person Thomas Bratt    schedule 13.11.2008    source источник


Ответы (4)


Между тем, disco.exe считается Microsoft устаревшей технологией.

Вы можете использовать svcutil.exe /t:metadata, чтобы добиться того же в эпоху WCF. Дополнительные преимущества - это поддержка дополнительных функций, например WS-Policy.

Сохранить схему из URL:

svcutil /t:metadata http://host/pathtomy.svc?wsdl

Сохранить схему из сборки, например, в автоматизированной сборке:

svcutil /t:metadata c:\wcfweb\pathToWcfServiceAssembly.dll

person Bernard Vander Beken    schedule 23.12.2009
comment
Спасибо, Бернард. Давно не занимался WCF - у вас есть ссылка? Я отмечу ваш ответ как принятый, если вы его предоставите. - person Thomas Bratt; 14.11.2012
comment
@ThomasBratt Не могли бы вы пояснить, что вы имеете в виду под ссылкой? - person Bernard Vander Beken; 20.11.2012
comment
@Bernard, он имеет в виду ссылку на страницу MS, где написано, что это так. - person Reg Edit; 16.10.2015
comment
Привет, Томас и @RegEdit. Страница документации disco.exe по адресу msdn.microsoft.com/en-US/library/cy2a3ybs (v = vs.100) .aspx для последней версии Framework 4.0, говорит: Этот раздел относится к устаревшей технологии. Веб-службы XML и клиенты веб-служб XML теперь должны создаваться с помощью Windows Communication Foundation. И svcutil является частью связанных с WCF инструментов msdn. microsoft.com/en-us/library/aa347733(v=vs.110).aspx Надеюсь, это проясняет ситуацию. - person Bernard Vander Beken; 19.10.2015

Если вы являетесь владельцем сервиса, вы могли бы изучить еще один интересный вариант - использовать Поведение FlatWSDL, которое заставит WCF генерировать все в одном документе WSDL, что должно упростить вам его распространение.

person tomasr    schedule 13.11.2008
comment
Превосходный проект WCFExtras на codeplex также можно использовать для создания одного файла wsdl. Очень проста в использовании, ее можно найти здесь - wcfextras.codeplex.com. - person Shuft; 03.11.2011

Похоже, что Microsoft предоставляет для этого Disco.exe.

person Thomas Bratt    schedule 13.11.2008
comment
Извините, что так тупой, но как его скачать? - person Andrii Muzychuk; 03.07.2014

Существует простой фрагмент кода, который позволяет загружать WSDL и все соответствующие файлы XSD для автономного использования (например, для генерации кода).

Обновить

Блог, в котором был показан фрагмент кода, больше не доступен. К счастью, Пабло Диез создал небольшой проект на основе моего сообщения в блоге и загрузил его на github. Сейчас он доступен здесь: https://github.com/pablod/xsd-downloader

person Balazs Zsoldos    schedule 04.10.2010
comment
Ссылка не устарела - решение хорошее, если вы работаете на Java. - person Jason; 02.02.2011
comment
Это не то, что я имел ввиду. При попытке перейти по ссылке я получил ошибку 404 или DNS, поэтому я так и не смог прочитать решение. Сайт, очевидно, снова работает, поэтому мой комментарий больше не действителен ... - person Per-Frode Pedersen; 25.02.2011
comment
Линк снова мертв. Пожалуйста, обновите свой ответ, когда это возможно, включив в него соответствующую информацию, поскольку мы рекомендуем сделать это, чтобы избежать этой проблемы .. - person Reg Edit; 16.10.2015