Практическое руководство. Использование 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). Для обхода этой проблемы выполните одно из следующих действий.

  • Переименуйте одну из операций.
  • Задайте другое имя в свойстве Name.
  • Установите другое пространство имен для одной из операций с помощью свойства Namespace.

Загрузка метаданных с помощью средства Svcutil.exe

  1. Найдите средство Svcutil.exe в следующей папке:

    C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin

  2. Из командной строки запустите средство, используя следующий формат.

    svcutil.exe /t:metadata  <url>* | <epr>  
    

    Параметр /t:metadata необходимо указать, чтобы загружались метаданные. В противном случае будут созданы код и конфигурация клиента.

  3. Аргумент <url>задает URL-адрес конечной точки службы, которая предоставляет метаданные или документ метаданных, размещенный в сети. Аргумент <epr> указывает путь к XML-файлу, который содержит WS-Адресацию EndpointAddress для конечной точки службы, поддерживающей WS-MetadataExchange.

Дополнительные сведения об использовании этого средства для скачивания метаданных см. в разделе ServiceModel Metadata Utility Tool (Svcutil.exe).

Пример

Следующая команда позволяет загрузить документы с метаданными из выполняющейся службы.

svcutil /t:metadata http://service/metadataEndpoint  

См. также