Использование привязок для настройки служб и клиентовUsing Bindings to Configure Services and Clients

Привязки - это объекты, которые указывают подробные сведения о связи, требуемые для подключения к конечной точке.Bindings are objects that specify the communication details required to connect to an endpoint. В частности, привязки содержат информацию о конфигурации, используемую для создания среды выполнения клиента или службы путем определения подробной информации о транспорте, форматах подключения (кодировка сообщения) и протоколах, используемых для соответствующей конечной точки или канала клиента.More specifically, bindings contain configuration information that is used to create the client or service runtime by defining the specifics of transports, wire-formats (message encoding), and protocols to use for the respective endpoint or client channel. Чтобы создать работоспособную службу Windows Communication Foundation (WCF), каждая конечная точка службы требует привязки.To create a functioning Windows Communication Foundation (WCF) service, each endpoint in the service requires a binding. В настоящем разделе описывается, что такое привязки, как они определяются и как для конечной точки указывается конкретная привязка.This topic explains what bindings are, how they are defined, and how a particular binding is specified for an endpoint.

Что определяет привязкаWhat a Binding Defines

Информация в привязке может быть очень простой или очень сложной.The information in a binding can be very basic or very complex. Самые простые привязки указывают только транспортный протокол (такой как HTTP), который должен использоваться для подключения к конечной точке.The most basic binding specifies only the transport protocol (such as HTTP) that must be used to connect to the endpoint. В общем случае, информация в привязке указывает на то, как подключиться к конечной точке, и попадает в одну из категорий, указанных в таблице ниже.More generally, the information a binding contains about how to connect to an endpoint falls into one of the categories in the following table.

ПротоколыProtocols
Определяет используемый механизм безопасности: способность надежного обмена сообщениями или настройки потока контекста транзакции.Determines the security mechanism being used, either reliable messaging capability or transaction context flow settings.

TransportTransport
Определяет основной используемый транспортный протокол (например, TCP или HTTP).Determines the underlying transport protocol to use (for example, TCP or HTTP).

кодировкаEncoding
Определяет кодирование сообщения, например кодирование text/XML, двоичное кодирование или кодирование подсистемы оптимизации передачи сообщений (MTOM), которое определяет, каким образом сообщения представляются в байтовых потоках в сети.Determines the message encoding, for example, text/XML, binary, or Message Transmission Optimization Mechanism (MTOM), which determines how messages are represented as byte streams on the wire.

Привязки, предоставляемые системойSystem-Provided Bindings

WCF включает набор привязок, предоставляемых системой, которые разработаны для удовлетворения большинства требований и сценариев приложения.WCF includes a set of system-provided bindings that are designed to cover most application requirements and scenarios. В следующих классах представлены некоторые примеры привязок, предоставляемых системой.The following classes represent some examples of system-provided bindings:

  • BasicHttpBinding: Привязка подходит для подключения к веб-служб протокола HTTP, соответствующим спецификации WS-I Basic Profile 1.1 спецификации (например, веб-службы ASP.NET [ASMX]-служб на основе).BasicHttpBinding: An HTTP protocol binding suitable for connecting to Web services that conforms to the WS-I Basic Profile 1.1 specification (for example, ASP.NET Web services [ASMX]-based services).

  • WSHttpBinding: Привязка подходит для подключения к конечным точкам, соответствующим в Интернете по протоколу HTTP служб протоколам спецификаций.WSHttpBinding: An HTTP protocol binding suitable for connecting to endpoints that conform to the Web services specifications protocols.

  • NetNamedPipeBinding: Использует .NET двоичное кодирование и технологии формирования кадров совместно с Windows, транспорт именованных каналов для подключения к другим конечным точкам WCF на одном компьютере.NetNamedPipeBinding: Uses the .NET binary encoding and framing technologies in conjunction with the Windows named pipe transport to connect to other WCF endpoints on the same machine.

  • NetMsmqBinding: Для создания подключений очередей сообщений с другими конечными точками WCF использует .NET двоичное кодирование и технологии формирования кадров совместно с очередью сообщений (MSMQ).NetMsmqBinding: Uses the .NET binary encoding and framing technologies in conjunction with the Message Queuing (also known as MSMQ) to create queued message connections with other WCF endpoints.

Полный список предоставляемых системой привязок с описаниями, см. в разделе System-Provided Bindings.For a complete list of system-provided bindings, with descriptions, see System-Provided Bindings.

Пользовательские привязкиCustom Bindings

Если в коллекции привязок, поставляемой в составе системы, нет нужного для приложения службы сочетания возможностей, можно создать привязку CustomBinding.If the system-provided binding collection does not have the correct combination of features that a service application requires, you can create a CustomBinding binding. Дополнительные сведения об элементах CustomBinding привязки, см. в разделе <customBinding > и пользовательские привязки.For more information about the elements of a CustomBinding binding, see <customBinding> and Custom Bindings.

Использование привязокUsing Bindings

Использование привязок включает два основных этапа.Using bindings entails two basic steps:

  1. Выбор или определение привязки.Select or define a binding. Самый простой способ - выбрать одну из предоставляемых системой привязок и использовать ее настройки по умолчанию.The easiest method is to choose one of the system-provided bindings and use its default settings. Также можно выбрать предоставляемую системой привязку и сбросить значения ее свойств таким образом, чтобы они соответствовали нужным требованиям.You can also choose a system-provided binding and reset its property values to suit your requirements. Кроме того, можно создать пользовательскую привязку и задать как требуется каждое свойство.Alternatively, you can create a custom binding and set every property as required.

  2. Создать конечную точку, которая использует данную привязку.Create an endpoint that uses this binding.

Код и конфигурацияCode and Configuration

Определить и настроить привязки можно посредством кода или конфигурации.You can define or configure bindings through code or configuration. Эти два подхода не зависят от типа используемой привязки, например, при использовании привязки, предоставляемой системой, или привязки CustomBinding.These two approaches are independent of the type of binding used, for example, whether you are using a system-provided or a CustomBinding binding. Как правило, использование кода дает полный контроль над определением привязки при компиляции.In general, using code gives you complete control over the definition of a binding when you compile. С другой стороны, использование конфигурации позволяет системному администратору или пользователю службы WCF или клиента, чтобы изменить параметры привязок.Using configuration, on the other hand, allows a system administrator or the user of a WCF service or client to change the parameters of bindings. Такая гибкость часто является предпочтительным, так как нет способа предугадать требования конкретного компьютера и состояние, в которые приложение WCF — для развертывания сети.This flexibility is often desirable because there is no way to predict the specific machine requirements and network conditions into which a WCF application is to be deployed. Отделение информации о привязке (и адресации) от кода позволяет администраторам изменять информацию о привязке без повторной компиляции или повторного развертывания приложения.Separating the binding (and addressing) information from the code allows administrators to change the binding details without having to recompile or redeploy the application. Обратите внимание, что, если привязка определена в коде, он заменяет любые определения, основанные на конфигурации, выполненные в файле конфигурации.Note that if the binding is defined in code, it overwrites any configuration-based definitions made in the configuration file. Примеры таких подходов см. в следующих разделах.For examples of these approaches, see the following topics:

См. такжеSee also