- Настройка службы активации процессов Windows для использования с Windows Communication Foundation Configuring the Windows Process Activation Service for Use with Windows Communication Foundation
- Настройка узла с привязками протоколов, отличных от HTTP Configuring a Site with Non-HTTP bindings
- Разрешение приложению использовать протоколы, отличные от HTTP Enabling an Application to Use Non-HTTP Protocols
- Построение службы WCF, использующей WAS для активации по протоколу, отличному от HTTP Building a WCF Service That Uses WAS for Non-HTTP activation
- Архитектура Windows Communication Foundation Windows Communication Foundation Architecture
- Архитектура WCF WCF Architecture
- Контракты и описания Contracts and Descriptions
- Среда выполнения службы Service Runtime
- Обмен сообщениями Messaging
- Размещение и активация Hosting and Activation
Настройка службы активации процессов Windows для использования с Windows Communication Foundation Configuring the Windows Process Activation Service for Use with Windows Communication Foundation
В этом разделе описываются шаги, необходимые для настройки службы активации Windows (также известной как WAS) в Windows Vista для размещения служб Windows Communication Foundation (WCF), не передающих сетевые протоколы HTTP. This topic describes the steps required to set up Windows Process Activation Service (also known as WAS) in Windows Vista to host Windows Communication Foundation (WCF) services that do not communicate over HTTP network protocols. Настройка предполагает следующие шаги. The following sections outline the steps for this configuration:
Установите (или подтвердите установку) необходимые компоненты активации WCF. Install (or confirm the installation of) the WCF activation components required.
Создайте узел WAS с привязками сетевых протоколов, которые планируется использовать, или добавьте новую привязку протокола в существующий узел. Create a WAS site with the network protocol bindings you wish to use, or add a new protocol binding to an existing site.
Создайте приложение для размещения служб и разрешите этому приложению использовать требуемые сетевые протоколы. Create an application to host your services and enable that application to use the required network protocols.
Создайте службу WCF, которая предоставляет конечную точку, отличную от HTTP. Build a WCF service that exposes a non-HTTP endpoint.
Настройка узла с привязками протоколов, отличных от HTTP Configuring a Site with Non-HTTP bindings
Для использования в сочетании со службой WAS привязки к протоколу, отличному от HTTP, необходимо добавить привязку узла в конфигурацию WAS. To use a non-HTTP binding with WAS, the site binding must be added to the WAS configuration. Хранилищем конфигурации для службы WAS является файл applicationHost.config, находящийся в каталоге %windir%\system32\inetsrv\config. The configuration store for WAS is the applicationHost.config file, located in the %windir%\system32\inetsrv\config directory. Это хранилище конфигурации используется и службой WAS, и службами IIS 7.0. This configuration store is shared by both WAS and IIS 7.0.
applicationHost.config представляет собой текстовый XML-файл, который можно открыть в любом стандартном текстовом редакторе, таком как Блокнот. applicationHost.config is an XML text file that can be opened with any standard text editor (such as Notepad). Однако предпочтительным способом добавления привязок сайта, отличных от HTTP, является средство настройки командной строки IIS 7,0 (appcmd.exe). However, the IIS 7.0 command-line configuration tool (appcmd.exe) is the preferred way to add non-HTTP site bindings.
Следующая команда добавляет в веб-узел по умолчанию привязку узла к протоколу net.tcp с помощью команды appcmd.exe (вводится как одна строка). The following command adds a net.tcp site binding to the default Web site using appcmd.exe (this command is entered as a single line).
Эта команда добавляет новую привязку net.tcp в веб-узел по умолчанию путем добавления приведенной ниже строки в файл applicationHost.config. This command adds the new net.tcp binding to the default Web site by adding the line indicated below to the applicationHost.config file.
Разрешение приложению использовать протоколы, отличные от HTTP Enabling an Application to Use Non-HTTP Protocols
Вы можете включить или отключить отдельную сеть, протоколсат уровень приложения. You can enable or disable individual network protocolsat the application level. Следующая команда иллюстрирует включение и протокола HTTP, и протокола net.tcp для приложения, выполняющегося на сайте Default Web Site . The following command illustrates how to enable both the HTTP and net.tcp protocols for an application that runs in the Default Web Site .
Следующий XML-код из файла applicationHost.config иллюстрирует сайт, привязанный и к протоколу HTTP, и к протоколу, отличному от HTTP. The following XML code from applicationHost.config illustrates a site bound to both HTTP and non-HTTP protocols. Дополнительная конфигурация, необходимая для поддержки отличных от HTTP протоколов, выделена комментариями. The additional configuration required to support non-HTTP protocols is called out with comments.
При попытке запустить службу с помощью WAS для активации по протоколу, отличному от HTTP, когда службы WAS не установлены и не настроены, может появиться сообщение об ошибке: If you attempt to activate a service using WAS for Non-HTTP activation and you have not installed and configured WAS you may see the following error:
Если появилось это сообщение об ошибке, убедитесь, что установлены и правильно настроены службы WAS для активации по протоколу, отличному от HTTP. If you see this error ensure WAS for Non-HTTP Activation is installed and configured properly. Дополнительные сведения см. в разделе инструкции. Установка и настройка компонентов активации WCF. For more information, see How to: Install and Configure WCF Activation Components.
Построение службы WCF, использующей WAS для активации по протоколу, отличному от HTTP Building a WCF Service That Uses WAS for Non-HTTP activation
После выполнения действий по установке и настройке WAS (см. раздел как установить и настроить компоненты активации WCF) Настройка службы для использования была выполнена для активации аналогично настройке службы, размещенной в службах IIS. Once you perform the steps to install and configure WAS (see How to: Install and Configure WCF Activation Components), configuring a service to use WAS for activation is similar to configuring a service that is hosted in IIS.
Подробные инструкции по созданию активированной службы WCF см. в разделе как разместить службу WCF в WAS. For detailed instructions about building a WAS-activated WCF service, see How to: Host a WCF Service in WAS.
Архитектура Windows Communication Foundation Windows Communication Foundation Architecture
На следующем рисунке показаны основные уровни архитектуры Windows Communication Foundation (WCF). The following graphic illustrates the major layers of the Windows Communication Foundation (WCF) architecture.
Архитектура WCF WCF Architecture
Контракты и описания Contracts and Descriptions
Контракты определяют различные аспекты системы сообщений. Contracts define various aspects of the message system. Контракты данных описывают каждый параметр, составляющий каждое сообщение, которое может быть создано или использовано службой. The data contract describes every parameter that makes up every message that a service can create or consume. Параметры сообщения определены документами языка определения схемы XML (XSD), тем самым позволяя обрабатывать документы любой системе, которая воспринимает XML. The message parameters are defined by XML Schema definition language (XSD) documents, enabling any system that understands XML to process the documents. Контракт сообщения определяет конкретные части сообщения, использующие протокол SOAP, и позволяет более точно управлять частями сообщения, когда такая точность требуется при взаимодействии. The message contract defines specific message parts using SOAP protocols, and allows finer-grained control over parts of the message, when interoperability demands such precision. Контракт службы задает фактические подписи методов службы и распространяется в качестве интерфейса в одном из поддерживаемых языков программирования, например Visual Basic и Visual C#. The service contract specifies the actual method signatures of the service, and is distributed as an interface in one of the supported programming languages, such as Visual Basic or Visual C#.
Политики и привязки задают условия, необходимые для взаимодействия со службой. Policies and bindings stipulate the conditions required to communicate with a service. Например, привязка должна (как минимум) указывать используемый транспорт (например, HTTP или TCP) и кодирование. For example, the binding must (at a minimum) specify the transport used (for example, HTTP or TCP), and an encoding. Политики содержат требования к безопасности и другие условия, которые должны быть удовлетворены для взаимодействия со службой. Policies include security requirements and other conditions that must be met to communicate with a service.
Среда выполнения службы Service Runtime
Уровень среды выполнения службы содержит поведения, возникающие только в процессе выполнения самой операции службы, то есть поведения среды выполнения службы. The service runtime layer contains the behaviors that occur only during the actual operation of the service, that is, the runtime behaviors of the service. Регулирование управляет количеством обрабатываемых сообщений, которое может изменяться, если запросы к службе возрастают до заранее установленного предела. Throttling controls how many messages are processed, which can be varied if the demand for the service grows to a preset limit. Поведение при ошибке указывает, что происходит при возникновении внутренней ошибки в службе, например управляя тем, какая информация передается клиенту. An error behavior specifies what occurs when an internal error occurs on the service, for example, by controlling what information is communicated to the client. (Слишком много информации может дать злонамеренному пользователю преимущество при подключении атаки.) Поведение метаданных определяет, как и какие метаданные становятся доступны внешнему миру. (Too much information can give a malicious user an advantage in mounting an attack.) Metadata behavior governs how and whether metadata is made available to the outside world. Поведение экземпляра указывает, какое число экземпляров службы может выполнятся (например, одноэлементный задает один экземпляр для обработки всех сообщений). Instance behavior specifies how many instances of the service can be run (for example, a singleton specifies only one instance to process all messages). Поведение транзакции включает откат транзакционных операций при сбое. Transaction behavior enables the rollback of transacted operations if a failure occurs. Поведение диспетчеризации — это управление процессом обработки сообщения инфраструктурой WCF. Dispatch behavior is the control of how a message is processed by the WCF infrastructure.
Расширяемость позволяет настраивать процессы среды выполнения. Extensibility enables customization of runtime processes. Например, инспекция сообщений предоставляет возможность инспектировать части сообщений, а фильтрация параметров позволяет выполнять заранее установленные действия, возникающие в зависимости от применения фильтров к заголовкам сообщений. For example, message inspection is the facility to inspect parts of a message, and parameter filtering enables preset actions to occur based on filters acting on message headers.
Обмен сообщениями Messaging
Уровень обмена сообщениями состоит из каналов. The messaging layer is composed of channels. Канал — это компонент, который обрабатывает сообщение некоторым образом, например путем проверки подлинности сообщения. A channel is a component that processes a message in some way, for example, by authenticating a message. Набор каналов также называется стеком каналов. A set of channels is also known as a channel stack. Каналы оперируют сообщениями и их заголовками. Channels operate on messages and message headers. Это отличается от уровня среды выполнения служб, который, главным образом, занимается обработкой содержимого тел сообщений. This is different from the service runtime layer, which is primarily concerned about processing the contents of message bodies.
Существует два типа каналов: каналы транспорта и каналы протоколов. There are two types of channels: transport channels and protocol channels.
Каналы транспорта считывают и записывают сообщения по сети (или какой-либо другой точке связи с внешним миром). Transport channels read and write messages from the network (or some other communication point with the outside world). Некоторые транспорты используют кодировщик для преобразования сообщений (которые представлены в виде наборов сведений XML) в представление потока байтов, используемое в сети, и обратно. Some transports use an encoder to convert messages (which are represented as XML Infosets) to and from the byte stream representation used by the network. Примерами транспортов являются HTTP, именованные каналы, TCP и MSMQ. Examples of transports are HTTP, named pipes, TCP, and MSMQ. Примерами кодирования являются XML и оптимизированный двоичный тип. Examples of encodings are XML and optimized binary.
Каналы протоколов реализуют протоколы обработки сообщений, обычно при чтении или записи дополнительных заголовков в сообщения. Protocol channels implement message processing protocols, often by reading or writing additional headers to the message. Примерами таких протоколов являются WS-Security и WS-Reliability. Examples of such protocols include WS-Security and WS-Reliability.
Уровень обмена сообщениями демонстрирует возможные форматы данных и их шаблоны обмена. The messaging layer illustrates the possible formats and exchange patterns of the data. WS-Security является реализацией спецификации WS-Security, включающей безопасность на уровне обмена сообщениями. WS-Security is an implementation of the WS-Security specification enabling security at the message layer. Канал обмена сообщениями WS-Reliable обеспечивает гарантированную доставку сообщений. The WS-Reliable Messaging channel enables the guarantee of message delivery. Кодировщики предоставляют различные кодировки, которые могут использоваться в соответствии с потребностями сообщений. The encoders present a variety of encodings that can be used to suit the needs of the message. Канал HTTP указывает, что протокол транспортировки гипертекста (HyperText Transport Protocol) используется для доставки сообщений. The HTTP channel specifies that the HyperText Transport Protocol is used for message delivery. Таким же образом канал TCP задает протокол TCP. The TCP channel similarly specifies the TCP protocol. Канал потока транзакций управляет шаблонами сообщений транзакций. The Transaction Flow channel governs transacted message patterns. Именованный канал включает межпроцессное взаимодействие. The Named Pipe channel enables interprocess communication. Канал MSMQ взаимодействие с приложениями MSMQ. The MSMQ channel enables interoperation with MSMQ applications.
Размещение и активация Hosting and Activation
В своей конечной форме служба является программой. In its final form, a service is a program. Как и другие программы, служба должна выполняться в исполняемом файле. Like other programs, a service must be run in an executable. Это называется резидентной службой. This is known as a self-hosted service.
Службы также могут размещаться или запускаться в исполняемом файле, управляемом внешним агентом, например IIS или службой активации Windows (WAS). Services can also be hosted, or run in an executable managed by an external agent, such as IIS or Windows Activation Service (WAS). WAS позволяет автоматически активировать приложения WCF при развертывании на компьютере, работающем в среде. WAS enables WCF applications to be activated automatically when deployed on a computer running WAS. Службы также могут быть вручную запущены как исполняемые файлы (EXE-файлы). Services can also be manually run as executables (.exe files). Их также можно автоматически запускать в виде служб Windows. A service can also be run automatically as a Windows service. Компоненты COM+ также могут размещаться как службы WCF. COM+ components can also be hosted as WCF services.