Активация windows communication foundation по http что это

Обновлено: 06.07.2024

Рассылка закрыта

При закрытии подписчики были переданы в рассылку "Всё о работе в Интернет" на которую и рекомендуем вам подписаться.

Вы можете найти рассылки сходной тематики в Каталоге рассылок.

Статистика

Секреты Windows: статьи о реестре, rundll32.exe, программах

Глава 8. Установка и удаление компонентов операционной системы. 8.1. Windows Features - Компоненты операционной системы, 3
Дата: 4 июня 2009, четверг

Пишите нам: onestyle СОБАЧКА list ТОЧКА ru

Первые два из трех этих подкомпонентов по умолчанию не установлены. Третий же установлен по умолчанию. Ранее, при описании работы с принтерами в операционной системе Windows Vista, мы с вами обсуждали основы нового формата XPS и стандартного принтера операционной системы MICROSOFT XPS DOCUMENT WRITER.

Данный принтер позволял создавать файлы в формате XPS, которые потом можно было просмотреть при помощи компонента XPS Viewer. Данный компонент является частью браузера Internet Explorer 7.0.

Если вы удалите компонент XPS Viewer, тогда не сможете просматривать файлы в формате XPS. Хотя по-прежнему сможете создавать их при помощи стандартного принтера MICROSOFT XPS DOCUMENT WRITER.

Microsoft Message Queue (MSMQ) Server

По умолчанию не установлен. Данный компонент содержит в себе набор вложенных компонентов, которые представляют собой сервер Microsoft Message Queue (MSMQ) и файлы для работы с ним.

Microsoft Message Queue позволяет клиенту обратиться к службе из серверного приложения COM+, даже если серверное приложение временно недоступно. В этом случае запрос клиента помещается в очередь MSMQ и обрабатывается, когда серверное приложение станет доступным. То есть, компонент MSMQ представляет собой некий инструмент промежуточного хранения (стек) самих запросов, адресов, по которым эти запросы нужно доставить в случае обнаружения доступности серверного приложения, а также последовательности, в которой эти запросы были получены, и в которой их нужно передать серверному приложению.

MSMQ, для создания приложений, работающих с очередями, содержит как специальные API-функции, так и набор ActiveX-объектов, дублирующих возможности API-функций, и позволяющих работать с очередями MSMQ при помощи Microsoft Visual Basic, Microsoft Visual Java, Borland Delphi.

Возможность работы с очередями установлена в операционной системе Windows Vista по умолчанию. А с помощью данного компонента можно управлять работой очередей MSMQ.

Данный компонент содержит в себе следующие дочерние компоненты.

Microsoft Message Queue (MSMQ) Server Core

Данный компонент содержит в себе следующие дочерние компоненты.

MSMQ Active Directory Integration.

Данный компонент позволяет выполнить интеграцию очереди MSMQ в домен Active Directory.

Он добавляет следующие библиотеки: mqqm.dll, mqrt.dll, mqsnap.dll, mqsec.dll, mqad.dll, mqcertui.dll, mqutil.dll, mqcmiplugin.dll, mqoa.dll, mqlogmgr.dll, mqmigplugin.dll.

Также добавляется два исполняемых файла mqsvc.exe и mqbkup.exe, и несколько mof-файлов (msmqpub.mof, msmqtrc.mof, msmqtrcRemove.mof) для работы с MSMQ при помощи инструментария управления Windows.

Кроме того, в разделе %systemroot%\system32 создается каталог msmq, содержащий в себе файлы, необходимые для работы MSMQ.

Однако на этом установка не заканчивается. После этого в ветвь реестра, предназначенную для автоматического запуска программ при входе пользователей в систему, заносится команда regsvr32 /s mqrt.dll.

Устанавливает триггеры для работы с очередью MSMQ.

MSMQ DCOM Proxy

По умолчанию не установлен. Данный компонент устанавливает четыре файла с описаниями новых свойств и методов для работы с DCOM: mqoa.tlb, mqoa10.tlb, mqoa20.tlb и mqoa30.tlb.

Print Services

Содержит в себе вложенные компоненты, позволяющие выполнять печать по сети или компьютеров с операционными системами Unix. Среди содержимого данного раздела можно встретить следующие компоненты.

Internet Printing Client

По умолчанию установлен. Позволяет использовать принтер, подключаясь к нему по протоколу TCP/IP. Данный компонент состоит из исполняемого файла wpnpinst.exe и библиотек inetppui.dll и inetpp.dll.

LPD Print Service

По умолчанию не установлен. Данный компонент устанавливает библиотеку lpdsvc.dll, необходимую для работы с LPD (Line Printer Daemon) и Remote Line Printer в качестве клиента.

Настройки данной службы хранятся в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\LPDSVC\Parameters и имеют тип REG_DWORD.

  • AllowJobRemoval. Определяет, разрешено ли принтеру выполнять удаленные задания. По умолчанию разрешено.
  • AllowPrinterResume. Определяет, разрешено ли пользователям возобновлять работу принтера. По умолчанию разрешено.
  • MaxConcurrentUsers. Определяет максимальное количество пользователей, которые могут пользоваться данным принтером одновременно. По умолчанию значение параметра равно 100.

LPR Port Monitor

По умолчанию не установлен. Данный компонент позволяет работать с серверами печати Unix (или VAX), для чего устанавливаются библиотеки lprhelp.dll, lprmon.dll, lprmonui.dll, SetupLpr.dll.

Библиотека lprmon.dll представляет собой порт LPR, который добавляется к списку портов ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors. То есть, после установки данного компонента, в списке PRINTER PORTS (отображается после нажатия на кнопку ADD PORT. расположенную на вкладке PORTS диалога PRINT SERVER PROPERTIES) появится новый элемент LPR PORT.

Также данный компонент устанавливает два исполняемых файла командной строки: lpq.exe и lpr.exe.

С помощью программы lpq.exe можно просмотреть очередь удаленного принтера, установленного на компьютере с операционной системой семейства Unix. Для этого достаточно воспользоваться данной программой, применив следующий синтаксис: lpq.exe –s«имя сервера» -p«имя принтера».

Если же вам нужно распечатать файл на удаленном принтере, тогда достаточно воспользоваться программой lpr.exe. Данная программа имеет следующий основной синтаксис: lpr.exe –s«имя сервера» -p«имя принтера» «путь к файлу, который нужно распечатать, и его имя». Также вы можете использовать дополнительные опции.

  • -C «класс». Класс нового задания
  • -J «имя». Название задания.
  • -o «тип». Определяет тип распечатываемого файла (по умолчанию считается, что распечатываемый файл текстовый).
  • -d. Говорит о том, что перед печатью распечатываемый файл нужно скопировать на сервер печати.

Remote Differential Compression

По умолчанию установлен.

Данный компонент представлен библиотекой msrdc.dll. Именно этот способ сжатия используется некоторыми службами операционной системы Windows Vista для повышения скорости работы в сети.

Removable Storage Management

По умолчанию не установлен. Данный компонент устанавливает следующие библиотеки: mll_hp.dll, mll_mtf.dll, mll_qic.dll, ntmsapi.dll, ntmsdba.dll, ntmsevt.dll, ntmsmgr.dll, ntmssvc.dll, rsmps.dll. Кроме того, устанавливаются следующие исполняемые файлы: rsm.exe, rsmmllsv.exe, rsmsink.exe, rsmui.exe.

Файл rsm.exe представляет собой программу командной строки, позволяющую управлять съемными устройствами. Чтобы просмотреть возможности данной программы, достаточно воспользоваться командой rsm.exe /?.

Также в процессе инсталляции данного компонента устанавливаются консоли ntmsmgr.msc (REMOVABLE STORAGE) и ntmsoprq.msc (REMOVABLE STORAGE OPERATOR REQUESTS).

Библиотеки и исполняемые файлы, которые устанавливаются данным компонентом, необходимы не только для работы устанавливаемых консолей, но и для работы новой службы REMOVABLE STORAGE (для своей работы она использует библиотеку ntmssvc.dll). Данная служба запускается вручную, работает от имени локальной системы, а также использует множество дополнительных привилегий.

Фактически, данный компонент не является нововведением операционной системы Windows Vista, так как он присутствовал и в операционной системе Windows XP. Он позволяет управлять и каталогизировать подключенные к компьютеру съемные устройства, что может повысить скорость доступа к ним.

RIP Listener

По умолчанию не установлен. Данный компонент устанавливает библиотеку iprip.dll, которая реализует работу новой службы RIP LISTENER. Данная служба предназначена для поддержки обновления таблиц маршрутизации (между маршрутизаторами сети) на основе протокола RIPv1.

Данная служба запускается автоматически, с правами локальной службы и дополнительной привилегией SeChangeNotifyPrivilege.

Также при установке данного компонента создается новое правило брандмауэра, которое описывается в параметре строкового типа RIP-LISTENER-1, расположенном в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System.

Services for NFS

По умолчанию не установлен. Данный компонент позволяет вам создать однородную среду из компьютеров, на которых установлены операционные системы семейства Windows или Unix. После установки данного компонента, пользователи этих операционных систем смогут обращаться к общим папкам компьютеров с любой операционной системой при помощи протокола NFS.

Компонент SERVICES FOR NFS содержит в себе несколько подкомпонентов, предназначенных для работы со службой NFS (Network File System). Описание данных компонентов приведено ниже.

Administrative Tools

Данный компонент устанавливает файлы для работы со службой NFS. К этим файлам в первую очередь относится консоль nfsmgmt.msc (SERVICES FOR NETWORK FILE SYSTEM) и исполняемые файлы nfsadmin.exe, rpcinfo.exe, showmount.exe. Также устанавливаются следующие библиотеки: nfscligrps.dll, nfsclilocks.dll, nfscommgmt.dll, nfsrc.dll.

Оснастка Services for Network File System Консоль nfsmgmt.msc предоставляет интерфейс для управления работой такими службами, как клиент и сервер для сетей NFS.

С помощью данной консоли вы не сможете примонтировать (или размонтировать) каталоги к файловой системе NFS — это выполняется при помощи программ, входящих в компонент CLIENT FOR NFS. Однако с ее помощью вы сможете настроить работу служб NFS.

Для этого достаточно запустить данную оснастку, выбрать нужную службу из списка и в ее контекстном меню выбрать команду PROPERTIES. Например, с помощью диалога PROPERTIES службы CLIENT FOR NFS, можно настроить следующие параметры работы файловой системы NFS (все эти настройки изменяют параметры REG_DWORD типа ветви реестра HKLM\SOFTWARE\Microsoft\Client for NFS\CurrentVersion\Default).

  • Используемые для соединения протоколы. Можно использовать либо протоколы TCP и UDP, либо один из них. Эта настройка изменяет значение параметра Protocols.
  • Используемый по умолчанию тип монтирования каталога к файловой системе NFS. Эта настройка изменяет значение параметра MountType.
  • Интервал поиска общих каталогов файловой системы NFS. Эта настройка изменяет значение параметра Timeout.
  • Используемые по умолчанию разрешения доступа к каталогам файловой системы NFS.

Также с помощью данной оснастки можно определить имя домена Active Directory, а также имя сервера User Name Mapping. Для этого достаточно воспользоваться командой PROPERTIES контекстного меню корневого раздела оснастки.

Исполняемые файлы Кроме оснастки SERVICES FOR NETWORK FILE SYSTEM, данный компонент добавляет набор программ командной строки, которые позволяют управлять работой файловой системы NFS.

Программа nfsadmin.exe позволяет управлять клиентом, сервером или картой файловой системы NFS. Для этого применяются специальные разновидности данной программы (также с каждой командой можно указывать опцию \\«IP-адрес», чтобы удаленно управлять компонентами файловой системы NFS).

  • nfsadmin.exe server «опции». Позволяет управлять службой NfsSvc. Опции данной команды позволяют изменить те же настройки, что и диалог PROPERTIES раздела SERVER FOR NFS оснастки SERVICES FOR NETWORK FILE SYSTEM.
  • nfsadmin.exe client «опции». Позволяет управлять службой NfsClnt. Опции данной команды позволяют изменить те же настройки, что и диалог PROPERTIES раздела CLIENT FOR NFS оснастки SERVICES FOR NETWORK FILE SYSTEM.
  • nfsadmin.exe mapping «опции». Опции данной команды позволяют изменить те же настройки, что и диалог PROPERTIES корневого раздела оснастки SERVICES FOR NETWORK FILE SYSTEM.

Программа showmount.exe позволяет просматривать общие каталоги, примонтированные к файловой системе NFS. Список опций данной программы можно просмотреть при помощи команды showmount.exe /?.

Программа rpcinfo.exe позволяет просматривать информацию о протоколе RPC и использующих его программах. Список опций данной программы можно просмотреть при помощи команды rpcinfo.exe /?.

Client for NFS

Добавляемые службы Устанавливает службу CLIENT FOR NFS (файл nfsclnt.exe), позволяющую данному компьютеру получать доступ к общим каталогам файловой системы NFS. Данная служба запускается автоматически, с правами сетевой службы и дополнительными привилегиями SeAuditPrivilege, SeChangeNotifyPrivilege и SeImpersonatePrivilege.

Настройки службы CLIENT FOR NFS хранятся в параметрах ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\NfsClnt\NFS LANs\Default LAN.

Также данный компонент устанавливает драйвер SERVER FOR NFS OPEN RPC (ONCRPC). Данный драйвер представлен файлом rpcxdr.sys и запускается вручную. Именно он и является клиентом службы NFS и выполняет взаимодействие с драйвером nfsrdr.sys, который является сервером службы NFS. Драйвер nfsrdr.sys получает запросы от драйверов rpcxdr.sys и передает их драйверу локальной файловой системы ntfs.sys на обработку.

Поведение данного драйвера также можно настроить. Для этого применяются параметры REG_DWORD типа ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\RpcXdr\Parameters.

Windows Communication Foundation – программная платформа от Microsoft для создания, настройки и развертывания распределенных сетевых сервисов. WCF-runtime и его пространство имен System.ServiceModel, представляющее его главный программный интерфейс, это преемник технологий создания распределенных систем, успешно применяемых разработчиками для создания распределенных приложений на платформе Windows в последнее десятилетие. Разберём тестовый пример создания WCF-сервиса.

Открываем Visual Studio 2015 и создаём новый проект типа Class Library. Проект назовём WCFMyServiceLibrary.



Файл Class1.cs переименуем в MyService.cs и добавим ещё один класс, файл для которого назовём IMyService.cs.

Добавим ссылку на сборку System.ServiceModel.

В файле MyService.cs опишем реализацию интерфейса:

На этом разработка сервиса завершена. Переходим к созданию службы Windows, которая будет контейнером для данного сервиса.

В том же решении (Solution) создадим новый проект типа «Служба Windows». Называем проект WindowsServiceHostForMyService.


Затем файл Service1.cs (только что созданного проекта) переименуем в MyService.cs. В этот проект добавим ссылку на сборку System.ServiceModel, а также не забываем указывать в файле MyService.cs директивы:


В классе MyService добавляем новый член:


Также необходимо добавить ссылку на проект WCFMyServiceLibrary, который находится в этом же решении:


Затем в классе MyService изменим метод OnStart таким образом, чтобы в этом методе добавлялись конечные точки нашего сервиса (endpoint):

Затем реализуем остановку сервиса в методе OnStop:


Затем в Обозревателе решения — двойной клик на файле MyService.cs (проекта WindowsServiceHostForMyService) откроет этот файл в режиме конструктора (Design Mode).


На пустом пространстве вызываем контекстное меню (щелчок правой кнопкой мыши) и выбираем «Добавить установщик».


При этом будет создан новый класс ProjectInstaller.cs
Переименуем файл ProjectInstaller.cs в MyServiceInstaller.cs.
При этом выйдет окно с вопросом, следует ли переименовать зависимые объекты – отвечаем «Да».

Добавим в файл ссылку


Затем изменим код конструктора класса MyServiceInstaller:


Заметим, что вызов метода InitializeComponent() мы заблокировали с помощью комментария.
На этом разработка службы Windows завершена. Собираем всё решение (Build Solution) и переходим к следующему этапу – установка службы Windows.

Для установки нашей службы создадим bat-файл (с произвольным названием, например Install_Windows_Service.bat) следующего содержания:


Нужно скопировать этот bat-файл в ту же папку, где находится скомпилированный файл WindowsServiceHostForMyService.exe (вам нужно заранее продумать, в какой папке будет лежать этот файл, который будет всегда запущен в качестве службы Windows).

Запускаем bat-файл, после чего наша программа WindowsServiceHostForMyService.exe будет установлена в качестве службы Windows.

Запустим эту службу с помощью стандартной программы управления службами.

Следующий этап – разработка клиентского приложения для использования предоставляемых сервисом услуг.

Для этого прежде всего нужно организовать так называемый «переходник» — Service Proxy – набор настроек, описывающих сервис для клиентского приложения.

Воспользуемся для этого стандартной утилитой SvcUtil.exe. Создадим файл Generate_Proxy.bat следующего содержания


Запустим этот файл (стандартная утилита SvcUtil.exe находится в папке C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin).

Этот файл нужно запустить во время работы нашего сервиса, т.е. в данном случае, после успешного запуска службы Windows WindowsServiceHostForMyService.

В случае успешного запуска, программа SvcUtil.exe сгенерирует 2 файла — MyServiceProxy.cs и App.config.

Эти файлы необходимо добавить для клиентского приложения, чтобы это приложение могло вызывать методы нашей службы (чуть ниже вы узнаете, что файл App.config я решил не добавлять — обойдёмся и без него).

Примечание. Аналогичного результата можно было добиться, запустив

В том же решении (Solution) создадим обычное приложение Windows Forms. Назовем его WindowsFormsApplication1


Добавим в этот проект ссылку на System.ServiceModel и, конечно же,


Добавим в этот проект файл MyServiceProxy.cs (именно его мы сгенерировали утилитой SvcUtil.exe). При этом следует добавить в файл MyServiceProxy.cs следующие строки:


После этого, мы сможем ссылаться на класс MyServiceClient (этот класс создан программой SvcUtil.exe), указав в файле формы директиву.

Пример готового файла MyServiceProxy.cs (комментарии удалены):

Поступим неординарно – и не будем добавлять файл App.Config в проект клиента!

Кнопка btn_Start – создаёт клиента
Кнопка btn_Send – отправляет сервису текстовую строку из текстового поля
Кнопка btn_Close – удаляет клиента из памяти и закрывает приложение


Заметим, что в данном примере на клиенте мы совсем не использовали конечную точку

Как включить Windows Communications Foundation?

Установка WCF

Нужна ли мне служба активации Windows?

Что делает служба активации Windows?

Служба активации Windows (WAS) IIS 7 - это ключевой компонент, который предоставляет модель процесса и функции конфигурации для веб-приложений и веб-служб. Основная задача WAS - управлять пулами приложений. Пулы приложений - это контейнеры конфигурации, которые представляют среду размещения для групп URL-адресов.

Как разместить службу Windows?

Как подключиться к KMS-серверу?

  1. Щелкните правой кнопкой мыши меню «Пуск» и выберите «Командная строка (администратор)».
  2. Выполните команду cscript slmgr. vbs -skms fsu-kms-01.fsu.edu, чтобы настроить компьютер для сервера активации KMS.
  3. Выполните команду cscript slmgr. vbs -ato для активации компьютера с сервером KMS.
  4. Наконец, запустите cscript slmgr.

Как запустить службу активации Windows?

В этой статье

  1. Нажмите "Пуск", "Администрирование", а затем "Диспетчер серверов".
  2. На левой панели навигации щелкните правой кнопкой мыши «Компоненты» и выберите «Добавить компоненты».
  3. На панели «Выбор компонентов» прокрутите вниз до пункта «Служба активации Windows».
  4. Установите флажки для модели процесса.

Что такое сервер активации Windows?

Что такое сервер активации Windows? Эти серверы Microsoft выделили для активации своего программного обеспечения. Без подключения к этим серверам сложно активировать программное обеспечение.

Как настроить WCF в IIS?

  1. Шаг 1. Создайте новый проект Visual Studio. Выберите установленный шаблон WCF и создайте новое приложение службы WCF:
  2. Шаг 2. Создайте код веб-службы. Обновите IService1. …
  3. Шаг 3: Создайте службу IIS. …
  4. Шаг 4 - используйте веб-службу. …
  5. Шаг 5. Воспользуйтесь услугой.

Что такое совместное использование TCP-порта?

Служба общего доступа к TCP-портам обеспечивает уровень обработки между приложениями и сетьюприложения, использующие совместное использование портов, по-прежнему должны быть защищены, как если бы они напрямую прослушивали сеть. В частности, приложения, использующие совместное использование портов, должны оценивать права процесса, с которыми они работают.

Будущее настало. Cloud Computing доступен массам, а распределенная архитектура теперь является естественной потребностью не только крупных организаций, но и самых что ни на есть рядовых граждан. Сегодня мы рассмотрим систему быстрого развертывания распределенных приложений в домашних условиях.

Прежде чем приступить к обзору средств WCF для построения приложений с распределенной архитектурой, рассмотрим подходы к реализации этих архитектур.

Два сапога…

Для начала ознакомимся с двумя фундаментальными методиками организации любой распределенки.
В распоряжении архитектора распределенных систем имеются два подхода: SOAP и REST.

Структура SOAP-запроса

Формат SOAP-ответа формируется аналогичным образом.

Таким образом, данные, полученные по указанному URL, при повторном обращении к ним могут быть кэшированы.
На первый взгляд, разница несущественна, ведь так или иначе клиент получает необходимые ему данные, однако, результаты проектирования системы в соответствии с этими подходами кардинально отличаются. Непосредственное обращение к ресурсам сервиса с помощью REST-подхода позволяет поднять степень конфиденциальности клиентской стороны, так как запросы могут фиксироваться исключительно на стороне веб-службы, чего не скажешь о SOAP-аналоге, где происходит непосредственный обмен пакетами между клиентской и серверной частью. Еще один аргумент не в пользу SOAP: обязательный разбор клиентом полученного XML-кода требует определенных трудозатрат, что плохо сказывается на масштабируемости задачи. REST в этом плане более практичен и не требует специальных оптимизационных мероприятий.

Короче говоря, выбор того или иного подхода должен быть основан, прежде всего, на особенностях решаемой задачи. Например, организация grid-системы, занимающейся поиском коллизии MD5-хешей, и абсолютно нелегального ботнета, организующего распределенный поиск заветной «строчки» по известному MD5-хешу – задачи, требующие индивидуального подхода.

Теперь вернемся непосредственно к WCF и посмотрим, какой набор инструментов предоставляется разработчику.

Сквозь призму Microsoft

WCF «по умолчанию» основан на SOAP. Однако, если использовать только часть определенных слоев, то можно организовать и REST-подход.

В Windows Communication Foundation есть три ключевых понятия:

  1. Адрес (Address);
  2. Связывание (Binding);
  3. Контракт (Contract).

Эти три атрибута определяют понятие так называемой «оконечной точки» сервиса. Оконечная точка – «орган» связи сервиса с внешним миром. Ее «Адрес», как ни странно, определяет адрес нахождения сервиса. Именно для предоставления адресной информации предоставляемых ресурсов используется URI (унифицированный локатор ресурсов, проще говоря, их адрес).

Есть контакт!

Рассмотрим создание оконечной точки WCF-службы для того, чтобы последняя могла предоставлять потенциальным клиентам свои методы.
Объявление Контакта заключается в создании класса и привязки к нему атрибута ServiceContractAttribute (и тут Remoting). В свою очередь, метод класса, который будет передавать обработанные данные во внешний мир, также должен помечаться атрибутом OperationContractAttribute. Рассмотрим описанные действия на примере создания метода службы, который принимает два целых числа и отправляет их сумму обратно во внешнюю среду:

Прототип Контракта

[ServiceContract]
public interface AddIntPoint
[OperationContract]
int Add(int x, int y);
>

Как можно догадаться из определения Контакта – в нем должно произойти сложение двух чисел, а вот его реализация:

Реализация Контракта

public class AddService : AddIntPoint
public int Add(int x, int y)
< return x + y; >
>

Теперь класс AddService является классом WCF-сервиса и может быть вызван клиентской частью удаленно.
Все гениальное просто. Ты можешь создать абсолютно любой метод, например, PasswordCrack (string MD5hash) и ждать заветного результата. Что самое примечательное – ты не будешь замечать, где происходят расчеты (на локальной машине или где-то на сервере в Зимбабве), так как WCF-прокси сам организует соединение с удаленной службой и аккуратно передаст тебе результаты выполнения удаленного метода.
Следующий код демонстрирует определение оконечной точки:

Определение Оконечной Точки

public class WCFServiceApp
//метод определения оконечной точки и запуска сервиса
public void DefineEndpointImperatively()
<. >
//эквивалентная оконечная точка в конфигурационном файле
public void DefineEndpointInConfig()
<. >
>

.
ServiceHost sh = new ServiceHost(typeof(AddService));
sh.AddServiceEndpoint(
typeof(AddIntPoint),
new WSHttpBinding(),
"http://localhost/AddService/Ep1");
sh.Open();
.

public class WCFClientApp
//инициализация канала передачи данных
public void SendMessageToEndpoint()
MathProxy proxy = new MathProxy();
int result = proxy.Add(35, 7);
>
>

Аналогичным образом клиент хранит свою оконечную точку для поддержки связи с оконечной точной сервиса. Кстати говоря, сервисы могут предоставлять целую коллекцию оконечных точек, а значит, предоставляют возможность использовать несколько различных каналов передачи данных (транспортов) и методов. Это дает возможность абстрагироваться от канала передачи данных и расширить множество потенциальных клиентских платформ за счет использования различных протоколов передачи данных. Например, ты можешь синхронизировать данные, поступающие с твоего основного ботнета и ботнета, основанного исключительно на мобильных платформах. Таким образом ты потенциально расширяешь спектр зараженных машин.

Например, ты можешь синхронизировать данные, поступающие с твоего основного ботнета и ботнета, основанного исключительно на мобильных платформах. Таким образом ты потенциально расширяешь спектр зараженных машин

Конфигурационный файл сервиса, расположенный вне исходного кода, позволяет легко активировать/деактивировать дополнительные опции сервиса (настройки безопасности, проверка целостности передаваемых данных и т.п.).

Что же там, за горизонтом?

К спектру технологий WCF можно подойти с разных позиций: разработка, безопасность, масштабируемость. Охватить детали той или иной области, которой касается Windows Communication Foundation, невозможно в рамках одной статьи. Да мы такой задачи перед собой и не ставили. Рассмотрев детали быстрой организации клиент-сервисной (именно сервисной) архитектуры, мы создали плацдарм для дальнейших исследований и непосредственного испытания майкрософтоской технологии в боевых условиях.

Распределение может быть полезно в любой окружающей нас области. Кто знает, может быть повседневные вещи в распределенном состоянии окажутся намного более удобными, и ты скажешь: «Как же я раньше до этого не додумался?». Вот, например, взгляни на свои веб-шеллы. Вспомни, как быстро их палят и прикрывают. Задумайся, почему? Потому что ты сам делаешь для этого все возможное: обращаясь каждый раз к одному и тому же сомнительному скрипту по несколько раз за день, ты оставляешь в логах веб-сервера избыточную информацию для бдительного администратора. А теперь представь, насколько возрастет степень твоей анонимности и конфиденциальность операций на вломанном сервере, если ты раскидаешь функционал своего веб-шелла по его нескольким неприметным уголкам обращение его частям.

Предоставленный материал представляет собой лишь вводную часть к той длинной истории, которая называется «WCF-сервис и сорок разбойников», коими выступают придуманные тобою сервисы. Ознакомившись с теоретической составляющей и бегло освоив базовые конструкции и детали конфигурации сервисной части, ты получаешь в свое распоряжение мощный инструмент реализации своих самых распределенных идей. Свои я уже реализовал и намерен поделиться ими с тобой на страницах нашего журнала.

На диске тебя ждет пример клиент-сервисного приложения. Рекомендую разобраться в значении каждой строчки кода.

Денис Макрушин

Читайте также: