Публикация метаданных
Службы 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 также можно использовать для получения метаданных службы во время выполнения, обратившись к свойству System.ServiceModel.Description.ServiceMetadataExtension.Metadata.
Конечные точки метаданных MEX
Для добавления конечных точек метаданных, использующих протокол MEX, следует добавить в узел службы конечные точки, которые используют контракт службы IMetadataExchange. WCF содержит интерфейс IMetadataExchange с именем этого контракта службы, который можно использовать как часть модели программирования WCF. Конечные точки WS-Metadata Exchange (или конечные точки 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