Публикация и получение метаданных через пользовательскую привязку
Класс System.ServiceModel.Description.ServiceMetadataBehavior поддерживает добавление конечной точки метаданных в службу. Эти конечные точки метаданных могут отвечать на запросы HTTP GET в URL, имеющем строку запроса ?wsdl , и на запросы WS-Transfer GET, согласно спецификации WS-MetadataExchange (MEX). Конечные точки MEX реализуют контракт System.ServiceModel.Description.IMetadataExchange.
Публикация метаданных через настраиваемую привязку.
Чтобы включить конечные точки метаданных HTTP GET и HTTPS GET, необходимо присвоить логическое значение true свойству System.ServiceModel.Description.ServiceMetadataBehavior.HttpGetEnabled или System.ServiceModel.Description.ServiceMetadataBehavior.HttpsGetEnabled. Привязки для этих конечных точек не могут быть настроены.
Впрочем, контракт IMetadataExchange может использоваться с любой конечной точкой, включая те, которые используют настраиваемые привязки. Это объясняется тем, что конечные точки IMetadataExchange идентичны любым другим конечным точкам службы Windows Communication Foundation (WCF). Настройка привязки для использования с конечной точкой IMetadataExchange требует навыков изменения конфигурации привязки, предоставляемой системой, или настройки System.ServiceModel.Channels.CustomBinding.
Получение метаданных через настраиваемую привязку.
Метаданные могут быть получены из конечных точек метаданных HTTP Get и HTTPS Get с использованием стандартных запросов HTTP или HTTPS GET.
Чтобы извлечь метаданные из конечной точки метаданных MEX, используется одна из стандартных привязок MEX, поддерживаемых WCF. Дополнительные сведения см. в разделе System.ServiceModel.Description.MetadataExchangeBindings. Тип System.ServiceModel.Description.MetadataExchangeClient и средство Svcutil.exe автоматически выбирают одну из стандартных привязок MEX на основе адреса заданной конечной точки метаданных.
Если конечная точка метаданных MEX использует привязку, отличающуюся от стандартных привязок MEX, существует возможность настроить привязку, используемую классом MetadataExchangeClient, используя код или предоставляя конфигурацию конечной точки клиента IMetadataExchange. Инструмент Svcutil.exe автоматически загружает из своего файла конфигурации конфигурацию конечной точки клиента IMetadataExchange с именем, аналогичным имени схемы URI для адреса конечной точки метаданных.
Безопасность
При публикации метаданных через настраиваемую привязку, убедитесь, что привязка обеспечивает поддержку безопасности, требуемую для метаданных. Например, для предотвращения раскрытия информации и контроля прав клиента на получение метаданных существует возможность дополнительной защиты метаданных и приложения путем настройки конечной точки IMetadataExchange таким образом, чтобы требовались шифрование и проверка подлинности. Пример Пользовательская конечная точка защищенных метаданных демонстрирует такой сценарий.
См. также
Задачи
Как настроить пользовательскую привязку для обмена WS-Metadata
Как получить метаданные через привязку, не использующую MEX