Конечные точки: адреса, привязки и контракты

Все взаимодействие со службой 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).

См. также