Практическое руководство. Использование Svcutil.exe для загрузки документов метаданных
Средство Svcutil.exe позволяет загружать метаданные из выполняющихся служб и сохранять эти метаданные в локальных файлах. Для схем URL-адресов HTTP и HTTPS Svcutil.exe пытается получить метаданные с помощью WS-MetadataExchange и обнаружения веб-служб XML. Для всех остальных URL-схем средство Svcutil.exe использует только протокол WS-MetadataExchange.
По умолчанию средство Svcutil.exe использует привязки, определенные в классе MetadataExchangeBindings. Чтобы настроить привязку, используемую для протокола WS-MetadataExchange, необходимо в файле конфигурации Svcutil.exe (svcutil.exe.config) настроить конечную точку клиента, которая бы использовала контракт IMetadataExchange
и имя которой совпадало бы со схемой универсального кода ресурса (URI) адреса конечной точки метаданных.
Внимание
При выполнении Svcutil.exe получения метаданных для службы, которая предоставляет два разных контракта службы, которые содержат операцию одного имени, Svcutil.exe отображает сообщение об ошибке "Не удается получить метаданные из ...." Например, если у вас есть служба, которая предоставляет контракт службы, который вызывает ICarService
операцию Get(Car c)
, и та же служба предоставляет контракт службы, который вызывает IBookService
операцию Get(Book b)
. Для обхода этой проблемы выполните одно из следующих действий.
Загрузка метаданных с помощью средства Svcutil.exe
Найдите средство Svcutil.exe в следующей папке:
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
Из командной строки запустите средство, используя следующий формат.
svcutil.exe /t:metadata <url>* | <epr>
Параметр
/t:metadata
необходимо указать, чтобы загружались метаданные. В противном случае будут созданы код и конфигурация клиента.Аргумент
<url>
задает URL-адрес конечной точки службы, которая предоставляет метаданные или документ метаданных, размещенный в сети. Аргумент<epr>
указывает путь к XML-файлу, который содержит WS-АдресациюEndpointAddress
для конечной точки службы, поддерживающей WS-MetadataExchange.
Дополнительные сведения об использовании этого средства для скачивания метаданных см. в разделе ServiceModel Metadata Utility Tool (Svcutil.exe).
Пример
Следующая команда позволяет загрузить документы с метаданными из выполняющейся службы.
svcutil /t:metadata http://service/metadataEndpoint