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

Каков наилучший способ загрузки всех файлов 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.

4b9b3361

Ответ 1

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

Ответ 2

Между тем, 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

Ответ 3

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

Ответ 4

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

Обновление

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