Практическое руководство. Использование 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

См. также