Поделиться через


Публикация метаданных

Службы Windows Communication Foundation (WCF) публикуют метаданные, публикуя одну или несколько конечных точек метаданных. Публикация метаданных службы позволяет получать доступ к метаданным с использованием стандартных протоколов, таких как WS-MetadataExchange (MEX) и запросы HTTP/GET. Конечные точки метаданных аналогичны другим конечным точкам служб в том, что они имеют адрес, привязку и контракт и могут быть добавлены в узел службы посредством конфигурации или принудительного кода.

Публикация конечных точек метаданных

Чтобы опубликовать конечные точки метаданных для службы WCF, сначала необходимо добавить ServiceMetadataBehavior поведение службы в службу. Добавление экземпляра System.ServiceModel.Description.ServiceMetadataBehavior позволяет службе отображать конечные точки метаданных. После добавления поведения службы System.ServiceModel.Description.ServiceMetadataBehavior можно отображать конечные точки метаданных, поддерживающие протокол MEX или отвечающие на запросы HTTP/GET.

System.ServiceModel.Description.ServiceMetadataBehavior использует WsdlExporter для экспорта метаданных для всех конечных точек службы. Дополнительные сведения об экспорте метаданных из службы см. в разделе "Экспорт и импорт метаданных".

Поведение службы System.ServiceModel.Description.ServiceMetadataBehavior добавляет в узел службы экземпляр ServiceMetadataExtension в качестве расширения. Расширение System.ServiceModel.Description.ServiceMetadataExtension обеспечивает реализацию протоколов публикации метаданных. Можно также использовать System.ServiceModel.Description.ServiceMetadataExtension для получения метаданных службы во время выполнения путем доступа к свойству ServiceMetadataExtension.Metadata .

Конечные точки метаданных MEX

Чтобы добавить конечные точки метаданных, использующие протокол MEX, следует добавить в основное приложение службы конечные точки службы, которые используют контракт службы IMetadataExchange. WCF включает IMetadataExchange интерфейс с этим именем контракта службы, который можно использовать в рамках модели программирования WCF. Конечные точки WS-MetadataExchange или конечные точки MEX могут использовать одну из четырех привязок по умолчанию, предоставляемых статическими методами фабрики для MetadataExchangeBindings сопоставления привязок по умолчанию, используемых средствами WCF, такими как Svcutil.exe. Настраивать конечные точки метаданных MEX также можно с помощью пользовательской привязки.

Конечные точки метаданных HTTP GET

Чтобы добавить конечную точку метаданных в службу, которая отвечает на запросы HTTP/GET, следует задать свойству HttpGetEnabled в поведении System.ServiceModel.Description.ServiceMetadataBehavior значение true. Кроме того, можно настроить конечную точку метаданных, которая использует протокол HTTPS, задав свойству HttpsGetEnabled в поведении System.ServiceModel.Description.ServiceMetadataBehavior значение true.

В этом разделе

Практическое руководство. Публикация метаданных для службы с использованием файла конфигурации
Демонстрируется настройка службы WCF для публикации метаданных, чтобы клиенты могли получать метаданные с помощью WS-MetadataExchange или HTTP/GET-запроса с помощью ?wsdl строки запроса.

Практическое руководство. Публикация метаданных для службы с использованием кода
Демонстрирует, как включить публикацию метаданных для службы WCF в коде, чтобы клиенты могли получать метаданные с помощью WS-MetadataExchange или HTTP/GET-запроса с помощью ?wsdl строки запроса.

Справочные материалы

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

См. также