- Develop Service-Oriented Applications with WCF
- In this section
- Учебник. Начало работы с Windows Communication Foundation приложениями Tutorial: Get started with Windows Communication Foundation applications
- Учебники по WCF WCF tutorials
- Основные понятия Windows Communication Foundation Fundamental Windows Communication Foundation Concepts
- Основы WCF WCF Fundamentals
- Обмен сообщениями и конечные точки Messaging and Endpoints
- Протоколы связи Communication Protocols
- Шаблоны сообщений Message Patterns
- Термины WCF WCF Terms
Develop Service-Oriented Applications with WCF
This section of the documentation provides information about Windows Communication Foundation (WCF), which is a unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments.
In this section
What’s New in Windows Communication Foundation 4.5
Discusses features new to Windows Communication Foundation.
WCF Simplification Features
Discusses new features that make writing WCF applications simpler.
Guide to the Documentation
A description of the WCF documentation
Conceptual Overview
Summarizes information about the Windows Communication Foundation (WCF) messaging system and the classes that support its use.
Getting Started Tutorial
A step by step tutorial to create a WCF service and client
Basic WCF Programming
Describes the fundamentals for creating Windows Communication Foundation applications.
WCF Feature Details
Shows topics that let you choose which WCF feature or features you need to employ.
Extending WCF
Describes how to modify and extend WCF runtime components
Guidelines and Best Practices
Provides guidelines for creating Windows Communication Foundation (WCF) applications.
Administration and Diagnostics
Describes the diagnostic features of WCF
Operating System Resources Required by WCF
Describes operating system resources required by WCF
Troubleshooting Setup Issues
Provides guidance for fixing WCF setup issues
Migrating from .NET Remoting to WCF
Compares .NET Remoting to WCF and provides migration guidance for common scenarios.
Using the WCF Development Tools
Describes the Visual Studio Windows Communication Foundation development tools that can assist you in developing your WCFservice.
Windows Communication Foundation Tools
Describes WCF tools designed to make it easier to create, deploy, and manage WCF applications
Windows Communication Foundation Samples
Samples that provide instruction on various aspects of Windows Communication Foundation
General Reference
The section describes the elements that are used to configure Windows Communication Foundation clients and services.
Privacy Information
Information regarding WCF and Privacy
Учебник. Начало работы с Windows Communication Foundation приложениями Tutorial: Get started with Windows Communication Foundation applications
В приведенной ниже серии руководств представлены инструкции по программированию Windows Communication Foundation (WCF). The following series of tutorials introduce you to the Windows Communication Foundation (WCF) programming experience. При работе с этими учебниками вы получите вводные сведения о шагах, необходимых для создания приложений WCF. Working through these tutorials in order will give you an introductory understanding of the steps required to create WCF applications. После завершения работы у вас будет работающая служба WCF и клиент WCF, который вызывает службу. After you finish, you’ll have a running WCF service and a WCF client that calls the service.
В учебнике предполагается, что вы используете Visual Studio в качестве среды разработки. The tutorial assumes you’re using Visual Studio as the development environment. Если вы используете другую среду разработки, пропустите инструкции, относящиеся к Visual Studio. If you’re using another development environment, ignore the Visual Studio-specific instructions.
Примеры приложений WCF, которые можно скачать и запустить, см. в разделе Windows Communication Foundation Samples. For sample WCF applications that you can download and run, see Windows Communication Foundation samples. Общие сведения о примерах см. в статье Приступая к работе. For an introduction to the samples, see Getting started sample.
Более подробные сведения о создании служб и клиентов см. в разделе Базовая программирование WCF. For more in-depth information about creating services and clients, see Basic WCF programming.
Учебники по WCF WCF tutorials
В первых трех руководствах описывается, как определить контракт службы WCF, как его реализовать и как разместить его. The first three tutorials describe how to define a WCF service contract, how to implement it, and how to host it. Создаваемая служба является саморазмещенной в консольном приложении. The service that you create is self-hosted within a console application. Службы также можно размещать в Microsoft службы IIS (IIS). You can also host services under Microsoft Internet Information Services (IIS). Дополнительные сведения см. в разделе инструкции. размещение службы WCF в IIS. For more information, see How to: Host a WCF Service in IIS. Хотя для настройки службы в этом учебнике используется код, можно также настроить службы в файле конфигурации. Although you use code to configure the service in the tutorial, you can also configure services within a configuration file.
Вы создаете контракт WCF с определяемым пользователем интерфейсом. You create a WCF contract with a user-defined interface. Этот контракт определяет функциональные возможности, предоставляемые службой. This contract defines the functionality that the service exposes.
После определения контракта его необходимо реализовать с помощью класса службы. After you define a contract, you must implement it with a service class.
Настройте конечную точку для службы и разместите ее в консольном приложении. Configure an endpoint for the service and host the service in a console application. Чтобы служба стала активной, ее необходимо настроить и разместить в среде выполнения. For a service to become active, you must configure it and host it within a run-time environment. Эта среда времени выполнения создает службу и управляет ее контекстом и временем существования. This run-time environment creates the service and controls its context and lifetime.
В следующих двух учебниках описывается создание, Настройка и использование клиентского приложения для вызова операций, предоставляемых службой. The next two tutorials describe how to create, configure, and use a client application to call the operations the service exposes. Службы публикуют доступные метаданные, определяющие сведения, необходимые клиентским приложениям для взаимодействия со службой. Services publish metadata that define the information a client application needs to communicate with the service. Visual Studio автоматизирует процесс доступа к этим метаданным и использует его для создания клиентского приложения для службы. Visual Studio automates the process of accessing this metadata and uses it to construct the client application for the service. Если вы решили не использовать Visual Studio, вместо этого можно использовать средство служебной программы метаданных ServiceModel (Svcutil.exe) . If you decide not to use Visual Studio, you can use the ServiceModel Metadata Utility tool (Svcutil.exe) instead.
Получите метаданные для создания прокси клиента WCF из службы WCF. Retrieve metadata for creating a WCF client proxy from a WCF service. Метаданные извлекаются с помощью Visual Studio для добавления ссылки на службу или можно использовать средство служебной программы метаданных ServiceModel. You retrieve metadata by using Visual Studio to add a service reference or you can use the ServiceModel Metadata Utility tool. Укажите конечную точку, которую клиент использует для доступа к службе. You specify the endpoint that the client uses to access the service.
Используйте прокси клиента WCF для вызова операций службы. Use the WCF client proxy to call the service operations.
Основные понятия Windows Communication Foundation Fundamental Windows Communication Foundation Concepts
В этом документе представлено высокоуровневое представление архитектуры Windows Communication Foundation (WCF). This document provides a high-level view of the Windows Communication Foundation (WCF) architecture. В нем приводится объяснение ключевых понятий и их взаимосвязь. It is intended to explain key concepts and how they fit together. Руководство по созданию простейшей версии службы WCF и клиента см. в руководстве по начало работы. For a tutorial on creating the simplest version of a WCF service and client, see Getting Started Tutorial. Дополнительные сведения о программировании WCF см. в разделе Базовая программирование WCF. To learn WCF programming, see Basic WCF Programming.
Основы WCF WCF Fundamentals
WCF — это среда выполнения и набор интерфейсов API для создания систем, отправляющих сообщения между службами и клиентами. WCF is a runtime and a set of APIs for creating systems that send messages between services and clients. Те же инфраструктура и интерфейсы API используются для создания приложений, обменивающихся данными с другими приложениями на данном компьютере или на компьютере, который находится в другой компании, и доступ к которому можно получить через Интернет. The same infrastructure and APIs are used to create applications that communicate with other applications on the same computer system or on a system that resides in another company and is accessed over the Internet.
Обмен сообщениями и конечные точки Messaging and Endpoints
WCF основана на концепции связи на основе сообщений, и все, что может быть смоделировано как сообщение (например, HTTP-запрос или сообщение MSMQ), могут быть представлены единообразно в модели программирования. WCF is based on the notion of message-based communication, and anything that can be modeled as a message (for example, an HTTP request or a Message Queuing (also known as MSMQ) message) can be represented in a uniform way in the programming model. Это обеспечивает универсальный интерфейс API для разных транспортных механизмов. This enables a unified API across different transport mechanisms.
Модель различает Клиенты, которые являются приложениями, которые инициируют связь, и службами, которые представляют собой приложения, которые ожидают от клиентов взаимодействовать с ними и реагируют на это взаимодействие. The model distinguishes between clients, which are applications that initiate communication, and services, which are applications that wait for clients to communicate with them and respond to that communication. Одно приложение может быть как клиентом, так и службой. A single application can act as both a client and a service. Примеры см. в разделе Дуплексные службы и одноранговые сети. For examples, see Duplex Services and Peer-to-Peer Networking.
Между конечными точками выполняется обмен сообщениями. Messages are sent between endpoints. Конечные точки — это места, куда отправляются или принимаются сообщения (или и те, и другие), и определяются все сведения, необходимые для обмена сообщениями. Endpoints are places where messages are sent or received (or both), and they define all the information required for the message exchange. Служба предоставляет одну или несколько конечных точек приложения (а также ноль или более конечных точек инфраструктуры), а клиент создает конечную точку, совместимую с одной из конечных точек службы. A service exposes one or more application endpoints (as well as zero or more infrastructure endpoints), and the client generates an endpoint that is compatible with one of the service’s endpoints.
Конечная точка описывает стандартный способ отправки сообщений, способ их отправки и то, как должны выглядеть сообщения. An endpoint describes in a standard-based way where messages should be sent, how they should be sent, and what the messages should look like. Служба может предоставлять эти сведения в виде метаданных, которые клиенты могут обрабатывать для создания соответствующих клиентов WCF и _стеков_связи. A service can expose this information as metadata that clients can process to generate appropriate WCF clients and communication stacks.
Протоколы связи Communication Protocols
Одним из обязательных элементов стека связи является транспортный протокол. One required element of the communication stack is the transport protocol. Сообщения можно отправлять через интрасети или через Интернет с помощью общих транспортов, таких как HTTP и TCP. Messages can be sent over intranets and the Internet using common transports, such as HTTP and TCP. Предусмотрены другие транспорты, поддерживающие связь с приложениями очереди сообщений и узлами в сетке одноранговой сети. Other transports are included that support communication with Message Queuing applications and nodes on a Peer Networking mesh. Дополнительные механизмы транспорта можно добавить с помощью встроенных точек расширения WCF. More transport mechanisms can be added using the built-in extension points of WCF.
Другим обязательным элементом стека связи является кодирование, определяющее способ форматирования любого заданного сообщения. Another required element in the communication stack is the encoding that specifies how any given message is formatted. WCF предоставляет следующие кодировки: WCF provides the following encodings:
кодировка текста — кодирование с возможностью взаимодействия; Text encoding, an interoperable encoding.
кодировка подсистемы оптимизации передачи сообщений MTOM — поддерживающий взаимодействие способ эффективной отправки неструктурированных двоичных данных в службу и из нее; Message Transmission Optimization Mechanism (MTOM) encoding, which is an interoperable way for efficiently sending unstructured binary data to and from a service.
двоичное кодирование для эффективной передачи. Binary encoding for efficient transfer.
Дополнительные механизмы кодирования (например, кодирование сжатия) можно добавить с помощью встроенных точек расширения WCF. More encoding mechanisms (for example, a compression encoding) can be added using the built-in extension points of WCF.
Шаблоны сообщений Message Patterns
WCF поддерживает несколько шаблонов обмена сообщениями, включая запрос-ответ, односторонний и дуплексную связь. WCF supports several messaging patterns, including request-reply, one-way, and duplex communication. Разные транспорты поддерживают разные шаблоны обмена сообщениями и таким образом влияют на типы поддерживаемых взаимодействий. Different transports support different messaging patterns, and thus affect the types of interactions that they support. Интерфейсы API и среда выполнения WCF также позволяют безопасно и надежно отсылать сообщения. The WCF APIs and runtime also help you to send messages securely and reliably.
Термины WCF WCF Terms
Другие понятия и термины, используемые в документации по WCF, включают следующее: Other concepts and terms used in the WCF documentation include the following:
Message Message
Автономная единица данных, которая может состоять из нескольких частей, включая текст и заголовки. A self-contained unit of data that can consist of several parts, including a body and headers.
Служба Service
Конструкция, предоставляющая доступ к одной или нескольким конечным точкам, каждая из которых предоставляет доступ к одой или нескольким операциям службы. A construct that exposes one or more endpoints, with each endpoint exposing one or more service operations.
Конечная точка Endpoint
Конструкция, в которой производится отправка или прием сообщений. A construct at which messages are sent or received (or both). Он включает в себя расположение (адрес), которое определяет, где можно отправлять сообщения, спецификацию механизма связи (привязка), который описывает, как следует отправлять сообщения, и определение набора сообщений, которые могут быть отправлены или получены (или оба) в этом расположении (контракт службы), описывающего сообщение, которое может быть отправлено. It comprises a location (an address) that defines where messages can be sent, a specification of the communication mechanism (a binding) that describes how messages should be sent, and a definition for a set of messages that can be sent or received (or both) at that location (a service contract) that describes what message can be sent.
Служба WCF видима внешнему миру как коллекция конечных точек. A WCF service is exposed to the world as a collection of endpoints.
Конечная точка приложения Application endpoint
Конечная точка, предоставляемая приложением и соответствующая контракту службы, реализуемому приложением. An endpoint exposed by the application and that corresponds to a service contract implemented by the application.
Конечная точка инфраструктуры Infrastructure endpoint
Конечная точка, предоставляемая инфраструктурой для расширения функциональных возможностей, необходимых для службы или предоставляемых службой и не имеющих отношения к контракту службы. An endpoint that is exposed by the infrastructure to facilitate functionality that is needed or provided by the service that does not relate to a service contract. Например, со службой может быть связана конечная точка инфраструктуры, предоставляющая информацию о метаданных. For example, a service might have an infrastructure endpoint that provides metadata information.
Адрес Address
Задает расположение, где принимаются сообщения. Specifies the location where messages are received. Он задается в виде универсального кода ресурса (URI). It is specified as a Uniform Resource Identifier (URI). Часть URI, определяющая схему, задает транспортный механизм для доставки по адресу, например HTTP и TCP. The URI schema part names the transport mechanism to use to reach the address, such as HTTP and TCP. Иерархическая часть URI содержит уникальное расположение, формат которого зависит от транспортного механизма. The hierarchical part of the URI contains a unique location whose format is dependent on the transport mechanism.
Адрес конечной точки позволяет создавать уникальные адреса для каждой конечной точки в службе или при определенных условиях использовать один адрес для нескольких конечных точек. The endpoint address enables you to create unique endpoint addresses for each endpoint in a service or, under certain conditions, to share an address across endpoints. В следующем примере показан адрес, использующий протокол HTTPS с портом, не установленным по умолчанию: The following example shows an address using the HTTPS protocol with a non-default port:
Вязывания Binding
Задает способ связи конечной точки с внешним миром. Defines how an endpoint communicates to the world. Она состоит из набора компонентов, называемых элементами привязки, которые компонуются в «стек», один над другим, образуя инфраструктуру связи. It is constructed of a set of components called binding elements that «stack» one on top of the other to create the communication infrastructure. Как минимум, привязка определяет используемые транспорт (например HTTP или TCP) и кодирование (например, текстовое или двоичное). At the very least, a binding defines the transport (such as HTTP or TCP) and the encoding being used (such as text or binary). Привязка может содержать элементы привязки, задающие такие сведения, как механизмы безопасности, используемые для защищенных сообщений, или шаблон сообщений, используемый конечной точкой. A binding can contain binding elements that specify details like the security mechanisms used to secure messages, or the message pattern used by an endpoint. Дополнительные сведения см. в разделе Настройка служб. For more information, see Configuring Services.
Элемент Binding Binding element
Представляет определенную часть привязки, такую как транспорт, кодирование, реализация протокола на уровне инфраструктуры (например, WS-ReliableMessaging) или любой другой компонент стека связи. Represents a particular piece of the binding, such as a transport, an encoding, an implementation of an infrastructure-level protocol (such as WS-ReliableMessaging), or any other component of the communication stack.
поведения Behaviors
Компонент, управляющий различными аспектами работы службы, конечной точки, определенной операции или клиента во время выполнения. A component that controls various run-time aspects of a service, an endpoint, a particular operation, or a client. Расширения функциональности группируются в соответствии с областью действия: общие расширения функциональности влияют глобально на все конечные точки, расширения функциональности служб влияют только на аспекты, относящиеся к службам, расширения функциональности конечных точек влияют только на свойства, относящиеся к конечным точкам, а расширения функциональности уровня операции влияют только на конкретные операции. Behaviors are grouped according to scope: common behaviors affect all endpoints globally, service behaviors affect only service-related aspects, endpoint behaviors affect only endpoint-related properties, and operation-level behaviors affect particular operations. Например, одно расширение функциональности службы регулирующее и определяет реакцию службы при избытке сообщений, превосходящем возможности обработки. For example, one service behavior is throttling, which specifies how a service reacts when an excess of messages threaten to overwhelm its handling capabilities. С другой стороны, поведение конечной точки управляет только аспектами, относящимися к конечным точкам, например способом поиска учетных данных безопасности и расположением для поиска. An endpoint behavior, on the other hand, controls only aspects that are relevant to endpoints, such as how and where to find a security credential.
Привязки, предоставляемые системой System-provided bindings
WCF содержит ряд привязок, предоставляемых системой. WCF includes a number of system-provided bindings. Они являются коллекциями элементов привязки, оптимизированными для конкретных сценариев. These are collections of binding elements that are optimized for specific scenarios. Например, WSHttpBinding предназначен для взаимодействия со службами, которые реализуют различные спецификации WS- * Спецификация. For example, the WSHttpBinding is designed for interoperability with services that implement various WS-* specifications. Эти заранее определенные привязки экономят время, предоставляя только те параметры, которые могут быть правильно применены для конкретного сценария. These predefined bindings save time by presenting only those options that can be correctly applied to the specific scenario. Если заранее определенная привязка не удовлетворяет необходимым требованиям, можно создать собственную настраиваемую привязку. If a predefined binding does not meet your requirements, you can create your own custom binding.
Настройка и кодирование Configuration versus coding
Управление приложением возможно с помощью кода, с помощью конфигурации или с помощью и того, и другого. Control of an application can be done either through coding, through configuration, or through a combination of both. Преимущество конфигурации заключается в том, что после написания кода параметры клиента или службы могут задаваться пользователями (например, системным администратором), а не только разработчиком, при этом отсутствует необходимость в повторной компиляции. Configuration has the advantage of allowing someone other than the developer (for example, a network administrator) to set client and service parameters after the code is written and without having to recompile. Конфигурация не только позволяет задавать значения, такие как адреса конечных точек, но и обеспечивает дополнительные возможности управления, позволяя добавлять конечные точки, привязки и расширения функциональности. Configuration not only enables you to set values like endpoint addresses, but also allows further control by enabling you to add endpoints, bindings, and behaviors. Кодирование позволяет разработчику сохранить полный контроль над всеми компонентами службы или клиента; все параметры, заданные при конфигурации, можно проверить и, при необходимости, изменить с помощью кода. Coding allows the developer to retain strict control over all components of the service or client, and any settings done through the configuration can be inspected and if needed overridden by the code.
Операция службы Service operation
Процедура, определенная в программном коде службы и реализующая функциональные возможности операции. A procedure defined in a service’s code that implements the functionality for an operation. Эта операция видима клиентам в виде методов клиента WCF. This operation is exposed to clients as methods on a WCF client. Метод может возвращать значение и может иметь ряд необязательных аргументов либо может не иметь аргументов и не возвращать никаких значений. The method can return a value, and can take an optional number of arguments, or take no arguments, and return no response. Например, операция, выполняющая функцию простого приветствия «Привет», может использоваться для уведомления о наличии клиента и запуска серии операций. For example, an operation that functions as a simple «Hello» can be used as a notification of a client’s presence and to begin a series of operations.
Контракт службы Service contract
Объединяет несколько связанных операций в один функциональный модуль. Ties together multiple related operations into a single functional unit. Контракт может определять параметры уровня службы, такие как пространство имен службы, соответствующий контракт обратного вызова и другие подобные параметры. The contract can define service-level settings, such as the namespace of the service, a corresponding callback contract, and other such settings. В большинстве случаев контракт задается путем создания интерфейса на выбранном языке программирования и применения атрибута ServiceContractAttribute к этому интерфейсу. In most cases, the contract is defined by creating an interface in the programming language of your choice and applying the ServiceContractAttribute attribute to the interface. Фактический код службы создается при реализации этого интерфейса. The actual service code results by implementing the interface.
Контракт операции Operation contract
Контракт операции определяет параметры операции и тип возвращаемых ею значений. An operation contract defines the parameters and return type of an operation. При создании интерфейса, определяющего контракт службы, контракт операции задается применением атрибута OperationContractAttribute к определению каждого метода, входящего в контракт. When creating an interface that defines the service contract, you signify an operation contract by applying the OperationContractAttribute attribute to each method definition that is part of the contract. Операции могут задаваться как получающие одно сообщение и возвращающие одно сообщение или как получающие набор типов и возвращающие тип. The operations can be modeled as taking a single message and returning a single message, or as taking a set of types and returning a type. В последнем случае формат сообщений, обмен которыми происходит при выполнении данной операции, определяется системой. In the latter case, the system will determine the format for the messages that need to be exchanged for that operation.
Контракт сообщения Message contract
Описывает формат сообщения. Describes the format of a message. Например, в нем описывается, должны элементы сообщения размещаться в заголовках или в теле, уровень безопасности, применяемый к определенным элементам сообщения и т. д. For example, it declares whether message elements should go in headers versus the body, what level of security should be applied to what elements of the message, and so on.
Контракт сбоя Fault contract
Может связываться с операцией службы для обозначения ошибок, которые могут возвращаться вызывающему объекту. Can be associated with a service operation to denote errors that can be returned to the caller. С операцией могут быть связаны ноль или более сбоев. An operation can have zero or more faults associated with it. Эти ошибки представляют собой сбои протокола SOAP, которые моделируются в модели программирования как исключения. These errors are SOAP faults that are modeled as exceptions in the programming model.
Контракт данных Data contract
Хранящееся в метаданных описание типов данных, используемых службой. The descriptions in metadata of the data types that a service uses. Это описание позволяет другим объектам работать со службой. This enables others to interoperate with the service. Типы данных могут использоваться в любой части сообщения, например в виде типов параметров или возвращаемых значений. The data types can be used in any part of a message, for example, as parameters or return types. Если в службе используются только простые типы, явное использование контрактов данных не требуется. If the service is using only simple types, there is no need to explicitly use data contracts.
Размещение Hosting
Служба должна быть размещена в некотором процессе. A service must be hosted in some process. Узел — это приложение, которое управляет временем существования службы. A host is an application that controls the lifetime of the service. Службы могут быть резидентными (размещенными сами в себе) или управляемыми существующим ведущим процессом. Services can be self-hosted or managed by an existing hosting process.
Автономная служба Self-hosted service
Служба, которая выполняется в приложении-процессе, созданном разработчиком. A service that runs within a process application that the developer created. Разработчик контролирует время существования службы, набор свойств службы, открывает службу (при этом служба переходит в режим ожидания данных) и закрывает службу. The developer controls its lifetime, sets the properties of the service, opens the service (which sets it into a listening mode), and closes the service.
Ведущий процесс Hosting process
Приложение, предназначенное для размещения служб. An application that is designed to host services. В число таких приложений входят службы IIS, службы активации Windows (WAS) и службы Windows. These include Internet Information Services (IIS), Windows Activation Services (WAS), and Windows Services. В этих сценариях ведущее приложение контролирует время существования службы. In these hosted scenarios, the host controls the lifetime of the service. Например, с помощью IIS можно создать виртуальный каталог, содержащий сборку службы и файл конфигурации. For example, using IIS you can set up a virtual directory that contains the service assembly and configuration file. При получении сообщения IIS запускает службу и контролирует время ее существования. When a message is received, IIS starts the service and controls its lifetime.
Instancing Instancing
Со службой связана модель создания экземпляров. A service has an instancing model. Существуют три модели создания экземпляров: «один экземпляр», в которой один объект CLR обслуживает всех клиентов, «по вызовам», в которой для обработки каждого вызова, поступившего от клиента, создается новый объект CLR, и «по сеансам», в которой создается набор объектов CLR, по одному на каждый отдельный сеанс. There are three instancing models: «single,» in which a single CLR object services all the clients; «per call,» in which a new CLR object is created to handle each client call; and «per session,» in which a set of CLR objects is created, one for each separate session. Выбор модели создания экземпляров зависит от требований к приложению и ожидаемого режима использования службы. The choice of an instancing model depends on the application requirements and the expected usage pattern of the service.
Клиентское приложение Client application
Программа, обменивающаяся сообщениями с одной или несколькими конечными точками. A program that exchanges messages with one or more endpoints. Клиентское приложение начинает работу с создания экземпляра клиента WCF и вызывает методы этого клиента WCF. The client application begins by creating an instance of a WCF client and calling methods of the WCF client. Обратите внимание, что одно и то же приложение может быть как клиентом, так и службой. It is important to note that a single application can be both a client and a service.
Канал Channel
Конкретная реализация элемента привязки. A concrete implementation of a binding element. Привязка представляет собой конфигурацию, а канал является реализацией, связанной с этой конфигурацией. The binding represents the configuration, and the channel is the implementation associated with that configuration. Следовательно, с каждым элементом привязки связан канал. Therefore, there is a channel associated with each binding element. Каналы, собранные в стек друг на другом, образуют конкретную реализацию привязки: стек каналов. Channels stack on top of each other to create the concrete implementation of the binding: the channel stack.
клиент WCF WCF client
Конструкция клиентского приложения, предоставляющая операции службы как методы (на выбранном вами языке программирования .NET Framework, например Visual Basic или Visual C#). A client-application construct that exposes the service operations as methods (in the .NET Framework programming language of your choice, such as Visual Basic or Visual C#). Каждое приложение может содержать клиента WCF, включая приложение, содержащее службу. Any application can host a WCF client, including an application that hosts a service. Следовательно, можно создать службу, содержащую клиентов WCF других служб. Therefore, it is possible to create a service that includes WCF clients of other services.
Клиент WCF можно создать автоматически с помощью средства служебной программы метаданных ServiceModel (Svcutil.exe) и указать его в работающей службе, которая публикует метаданные. A WCF client can be automatically generated by using the ServiceModel Metadata Utility Tool (Svcutil.exe) and pointing it at a running service that publishes metadata.
Метаданные Metadata
Описывают характеристики службы, которые необходимо знать внешней сущности для обмена данными со службой. In a service, describes the characteristics of the service that an external entity needs to understand to communicate with the service. Метаданные можно использовать с помощью средства служебной программы метаданных ServiceModel (Svcutil.exe) для создания клиента WCF и сопутствующей конфигурации, которую клиентское приложение может использовать для взаимодействия со службой. Metadata can be consumed by the ServiceModel Metadata Utility Tool (Svcutil.exe) to generate a WCF client and accompanying configuration that a client application can use to interact with the service.
Метаданные, предоставляемые службой, содержат документы схемы XML, определяющие контракт данных службы, и документы WSDL, описывающие методы службы. The metadata exposed by the service includes XML schema documents, which define the data contract of the service, and WSDL documents, which describe the methods of the service.
Если метаданные для службы включены, они автоматически создаются WCF путем проверки службы и ее конечных точек. When enabled, metadata for the service is automatically generated by WCF by inspecting the service and its endpoints. Для публикации метаданных службы необходимо явно задать расширение функциональности метаданных. To publish metadata from a service, you must explicitly enable the metadata behavior.
Безопасность Security
В WCF включает в себя конфиденциальность (шифрование сообщений для предотвращения перехвата), целостность (средства для обнаружения несанкционированных сообщений), проверку подлинности (средства для проверки серверов и клиентов) и авторизацию (Управление доступом к ресурсам). In WCF, includes confidentiality (encryption of messages to prevent eavesdropping), integrity (the means for detection of tampering with the message), authentication (the means for validation of servers and clients), and authorization (the control of access to resources). Эти функции предоставляются либо с помощью существующих механизмов безопасности, таких как TLS по протоколу HTTP (также известного как HTTPS), либо путем реализации одной или нескольких различных * спецификаций WS-Security. These functions are provided by either leveraging existing security mechanisms, such as TLS over HTTP (also known as HTTPS), or by implementing one or more of the various WS-* security specifications.
Режим безопасности транспорта Transport security mode
Указывает, что конфиденциальность, целостность и проверка подлинности обеспечиваются механизмами транспортного уровня (такими как HTTPS). Specifies that confidentiality, integrity, and authentication are provided by the transport layer mechanisms (such as HTTPS). При использовании такого транспорта, как HTTPS, преимущества этого режима заключаются в его эффективной производительности и хорошей известности в связи с преобладающим применением в Интернете. When using a transport like HTTPS, this mode has the advantage of being efficient in its performance, and well understood because of its prevalence on the Internet. Недостаток заключается в том, что безопасность этого типа применяется отдельно на каждом прыжке пути передачи, в результате чего связь становится чувствительной к атакам типа «злоумышленник в середине». The disadvantage is that this kind of security is applied separately on each hop in the communication path, making the communication susceptible to a «man in the middle» attack.
Режим безопасности сообщений Message security mode
Указывает, что безопасность предоставляется путем реализации одной или нескольких спецификаций безопасности, например спецификации с именем WS-Security: SOAP Message Security. Specifies that security is provided by implementing one or more of the security specifications, such as the specification named Web Services Security: SOAP Message Security. Каждое сообщение содержит необходимые механизмы, обеспечивающие безопасность во время его передачи и позволяющие получателям обнаруживать подделки и расшифровывать сообщения. Each message contains the necessary mechanisms to provide security during its transit, and to enable the receivers to detect tampering and to decrypt the messages. В этом отношении безопасность заложена внутри каждого сообщения, обеспечивая сквозную безопасность по всем участкам передачи. In this sense, the security is encapsulated within every message, providing end-to-end security across multiple hops. Поскольку сведения о безопасности становятся частью сообщения, можно также включить несколько типов учетных данных с сообщением (они называются утверждениями). Because security information becomes part of the message, it is also possible to include multiple kinds of credentials with the message (these are referred to as claims). Дополнительным преимуществом такого подхода является возможность безопасной передачи сообщения с помощью любого транспортного механизма, включая несколько транспортных механизмов между источником и назначением. This approach also has the advantage of enabling the message to travel securely over any transport, including multiple transports between its origin and destination. К недостатком этого подхода относится сложность используемых криптографических механизмов, требовательных к производительности. The disadvantage of this approach is the complexity of the cryptographic mechanisms employed, resulting in performance implications.
Транспорт с режимом безопасности учетных данных сообщений Transport with message credential security mode
Задает использование транспортного уровня для обеспечения конфиденциальности, проверки подлинности и целостности сообщений, но каждое сообщение может содержать несколько учетных данных (утверждений), требуемых получателями сообщения. Specifies the use of the transport layer to provide confidentiality, authentication, and integrity of the messages, while each of the messages can contain multiple credentials (claims) required by the receivers of the message.
Протокол* WS-*
Сокращение для обозначения растущего набора спецификаций веб-служб (WS), таких как WS-Security, WS-ReliableMessaging и т. д., реализованных в WCF. Shorthand for the growing set of Web Service (WS) specifications, such as WS-Security, WS-ReliableMessaging, and so on, that are implemented in WCF.