Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Привязки — это коллекции специальных элементов конфигурации, называемые элементами привязки, которые вычисляются средой выполнения службы всякий раз, когда создается клиент или конечная точка службы. Тип и порядок элементов привязки в привязке определяет порядок выбора и стека протоколов и транспортных каналов в стеке каналов конечной точки.
Привязки, особенно предоставляемые системой привязки, обычно имеют ряд свойств конфигурации, которые отражают наиболее часто измененные свойства инкапсулированных элементов привязки.
Привязка должна содержать ровно один элемент связывания транспорта. Каждый элемент привязки транспорта подразумевает элемент привязки кодирования сообщений по умолчанию, который можно переопределить, добавив в привязку не более одного элемента кодирования сообщения. Помимо элементов привязки транспорта и кодировщика привязка может содержать любое количество элементов привязки протокола, которые вместе реализуют функциональные возможности, необходимые для обслуживания, и отправлять сообщение SOAP из одной конечной точки в другую. Дополнительные сведения см. в разделе "Использование привязок для настройки служб и клиентов".
Расширение связей и элементов связывания
Windows Communication Foundation (WCF) включает в себя системные привязки, охватывающие широкий спектр сценариев. (Дополнительные сведения см. в разделеSystem-Provided Привязки.) Однако может возникнуть время, когда необходимо создать и использовать привязку, которая не включена в WCF. Для следующих сценариев требуется создание новой привязки.
Чтобы использовать новый элемент привязки (например, новый элемент привязки транспорта, кодирования или привязки протокола), необходимо создать новую привязку, содержащую этот элемент привязки. Например, если вы добавили настраиваемый
UdpTransportBindingElement
для транспорта UDP, вам потребуется создать новую привязку, чтобы использовать её. Сведения о выполнении этого поведения с помощью System.ServiceModel.Channels.CustomBinding типа см. в разделе "Пользовательские привязки".Чтобы настроить существующие элементы привязки таким образом, чтобы предоставленные системой привязки не были видимыми в публичных свойствах. Например, необходимо создать новую привязку, чтобы изменить порядок выполнения операций подписывания и шифрования. Сведения о выполнении этого поведения см. в статье "Практическое руководство. Настройка привязки System-Provided".
Чтобы установить корпоративные стандартные привязки, предоставляющие только определенные параметры конфигурации. Например, чтобы создать для вашей компании вариант WSHttpBinding, в котором безопасность не может быть отключена, создайте новую привязку, которая ведет себя так же, как WSHttpBinding, но с всегда включенной безопасностью. Дополнительные сведения см. в разделе "Создание User-Defined привязок".
Для выполнения некоторых настроек метаданных обычно, но не обязательно настраивать или использовать некоторый пользовательский элемент привязки. Дополнительные сведения о поддержке метаданных для привязок и элементов привязки см. в разделе "Поддержка конфигурации и метаданных".
Каналы, привязки и элементы привязки
Привязки и элементы привязки — это связь между моделью программирования приложения, которая включает атрибуты и поведение, а также модель канала, которая включает фабрики и прослушиватели, кодировщики сообщений и реализации транспорта и протокола. Как правило, элементы привязки и привязки реализуются, чтобы каналы могли использоваться уровнем приложения.
Слой канала передает или получает сообщения из уровня службы и передает эти сообщения между конечными точками. На клиенте канальный уровень — это набор фабрик каналов, создающих каналы с конечными точками сети. В службе слой каналов — это стек прослушивателей каналов, которые принимают каналы, полученные в конечной точке сети.
Существует два общих типа каналов: каналы протокола и транспортные каналы. Каналы транспорта отвечают за фактическую передачу сообщения из одной сетевой конечной точки в другую. Транспортные каналы должны иметь кодировщик сообщений по умолчанию и должны иметь возможность использовать альтернативный кодировщик сообщений, предоставленный через элемент привязки кодировщика сообщений. Кодировщик сообщений отвечает за преобразование System.ServiceModel.Channels.Message в линейное представление и наоборот. Каналы протокола отвечают за реализацию протоколов уровня SOAP (например, WS-Security или WS-ReliableMessaging).
Основное требование для каналов транспорта и протокола заключается в том, что они реализуют необходимые интерфейсы каналов. Для создания слоя рабочего канала необходимо иметь связанные фабрики, прослушиватели и так далее. Чтобы использовать реализации канала из WCF, необходимо иметь связанные элементы привязки, производные от BindingElement, для каждого канала, и должен быть связанный элемент расширения привязки для включения в файлы конфигурации, производный от BindingElementExtensionElement.
Как упоминалось ранее, элементы привязки для кодировщиков сообщений, протоколов и реализаций транспортных каналов можно сложить, чтобы сформировать стек каналов, а механизм их связывания в упорядоченный набор — это привязка. Привязки и элементы привязки подключают модель программирования приложения к модели канала. Реализации канала можно использовать непосредственно из кода, но если кодировщики, транспорты и протоколы не реализуются в качестве элементов привязки, то они не могут использоваться из модели программирования на уровне служб.
Дополнительные сведения о разработке каналов и их элементах привязки см. в разделе "Расширение уровня канала".