Конечные точки: адреса, привязки и контракты
Все взаимодействие со службой Windows Communication Foundation (WCF) осуществляется через конечные точки службы. Конечные точки предоставляют клиентам доступ к функциям, предлагаемым службой WCF.
Каждая конечная точка состоит из четырех свойств:
адрес, показывающий, где можно найти конечную точку;
привязку, показывающую, как клиент может связаться с конечной точкой;
контракт, определяющий доступные операции;
набор поведений, задающих сведения о локальной реализации конечной точки.
В этом разделе описывается эта структура конечной точки и объясняется, как она представлена в объектной модели WCF.
Структура конечной точки
Каждая конечная точка состоит из следующего.
Адрес: адрес однозначно определяет конечную точку и указывает потенциальным потребителям на место расположения службы. Он представлен в объектной модели WCF классом EndpointAddress . Класс EndpointAddress содержит следующее.
Свойство Uri, представляющее адрес службы.
Свойство Identity, представляющее удостоверение безопасности службы и коллекцию необязательных заголовков сообщений. Необязательные заголовки сообщений используются для вывода дополнительной и более подробной информации, необходимой для идентификации конечной точки или взаимодействия с ней.
Дополнительные сведения см. в разделе "Указание адреса конечной точки".
Привязка. Привязка задает способ связи клиента с конечной точкой. В том числе:
используемый транспортный протокол (например, TCP или HTTP);
используемую в сообщениях кодировку (например, текст или двоичное кодирование);
необходимые требования безопасности (например, безопасность сообщений SSL или SOAP).
Дополнительные сведения см. в разделе "Общие сведения о привязках WCF". Привязка представлена в объектной модели WCF абстрактным базовым классом Binding. В большинстве сценариев пользователи могут использовать только одну из предусмотренных системой привязок. Дополнительные сведения см. в разделе "Предоставленные системой привязки".
Контракты. Контракты показывают, какие функциональные возможности дает клиенту конечная точка. В контракте задается следующее:
операции, которые могут быть вызваны клиентом;
форма сообщения;
тип входных параметров или данных, требуемых для вызова операции;
тип обработки или ответного сообщения, который может ожидать клиент.
Дополнительные сведения об определении контракта см. в разделе "Проектирование контрактов службы".
Поведения. Поведения конечной точки можно использовать для настройки локального поведения конечной точки службы. Поведение конечных точек достигается путем участия в процессе создания среды выполнения WCF. Примером поведения является свойство ListenUri, позволяющее указывать отличный от адреса SOAP или WSDL адрес прослушивания. Дополнительные сведения см. в разделе ClientViaBehavior.
Определение конечных точек
Адрес конечной точки службы можно задать императивно с помощью кода или декларативно с помощью конфигурации. Дополнительные сведения см. в статье "Практическое руководство. Создание конечной точки службы в конфигурации и практическое руководство. Создание конечной точки службы в коде".
В этом разделе
В данном разделе объясняется назначение привязок, конечных точек и адресов; показано, как конфигурировать привязку и конечную точку, и демонстрируется, как использовать поведение ClientVia
и свойство ListenUri
.
Адреса
Описывает, как устраняются конечные точки в WCF.
Bindings
Описывается, как привязки используются для указания транспорта, кодировки и данных протокола, требуемых для связи клиентов и служб.
Контракты
Описывается, как контакты определяют методы службы.
Практическое руководство. Создание конечной точки службы в конфигурации
Описывается, как создать конечную точку службы в конфигурации.
Практическое руководство. Создание конечной точки службы в коде
Описывается, как создать конечную точку службы в коде.
Практическое руководство. Использование программы Svcutil.exe для проверки скомпилированного кода службы
Описывает, как обнаруживать ошибки в реализациях и конфигурациях служб без размещения службы с помощью средства служебной программы метаданных ServiceModel (Svcutil.exe).