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


Публикация и получение метаданных через пользовательскую привязку

Класс System.ServiceModel.Description.ServiceMetadataBehavior поддерживает добавление конечной точки метаданных в службу. Эти конечные точки метаданных могут реагировать на HTTP-запросы GET по URL-адресу, который содержит ?wsdl строку запросов и запросы WS-Transfer GET, как определено в спецификации WS-MetadataExchange (MEX). Конечные точки MEX реализуют контракт System.ServiceModel.Description.IMetadataExchange.

Публикация метаданных через настраиваемую привязку.

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

Однако IMetadataExchange контракт можно использовать с любой конечной точкой, включая те, которые используют пользовательские привязки, так как IMetadataExchange конечные точки идентичны любой другой конечной точке службы Windows Communication Foundation (WCF). Настройка привязки для использования с конечной точкой System.ServiceModel.Channels.CustomBinding требует навыков изменения конфигурации привязки, предоставляемой системой, или настройки IMetadataExchange.

Получение метаданных через настраиваемую привязку.

Метаданные могут быть получены из конечных точек метаданных 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 таким образом, чтобы требовались шифрование и проверка подлинности. Пример пользовательской конечной точки безопасных метаданных демонстрирует этот сценарий.

См. также