Windows communication foundation non http activation что это

Windows Communication Foundation (WCF) служба

Давайте рассмотрим процесс создания и вызова службы WCF.

Создание службы WCF

Для начала необходимо создать новый проект WCF. Пусть наша Windows Communication Foundation служба будет возвращать количество оставшихся дней до нового года.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Visual studio создаст интерфейс и класс службы по умолчанию с именем IService1.cs и Service1.svc.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Нам необходимо переименовать их в соответствии с нашей предметной областью.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Давайте рассмотрим интерфейс INewYearService. Для начала нам необходимо в теле интерфейса объявить метод, который будет предоставлять служба для вызова. Для этого его необходимо пометить атрибутом [OperationContract].

Как вы видите данный метод возвращает экземпляр класса TimeToNewYear. Это вспомогательный класс, содержащий значения времени до нового года. Ниже приведена его структура. Для того, чтобы данный класс можно было использовать в качестве возвращаемого аргумента, его необходимо пометить атрибутом [DataContract], а свойства, доступные для чтения клиенту в возвращаемом значении помечаются атрибутом [DataMember].

Теперь нам остается реализовать интерфейс Windows Communication Foundation службы в классе NewYearService.svc.cs следующим образом:

Давайте проверим работу нашей службы wcf. Для этого нажмем кнопку Начать отладку. Обратите внимание, что возможные два варианта поведения системы. Если мы начнем отладку находясь в NewYearService.svc, от откроется отладчик службы. Во всех остальных случаях откроется окно браузера. Давайте рассмотрим каждый из вариантов подробнее.

Браузер

После запуска отладки отобразится браузер с файловой структурой нашей службы wcf.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Нам необходимо нажать на ссылку с именем нашей службы NewYearService.svc. Если все работает корректно, то мы увидим следующее окно, иначе будет показано сообщение с ошибкой.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Тестовый клиент WCF

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

В левой верхней части отладчика можно увидеть структура нашей службы wcf. Для проверки нашего метода выполним двойной щелчок левой кнопкой мыши по его имени. В правой части отладчика откроется форма запроса. Мы можем указать значение, которое будет передано в метод.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

После установки передаваемых значений необходимо нажать кнопку Вызвать. Появится предупредительное сообщение. Можно смело ставить галочку Не выводить это сообщение в дальнейшем и нажимать кнопку ОК.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

После этого в нижней правой части отладчика будет отображены значения возвращаемые нашей службой wcf.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Консольный клиент для WCF

Теперь нам необходимо создать клиент, который будет обращаться к нашей службе wcf. Для этого для начала создадим новое консольное приложение.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

В созданном консольном приложении нам необходимо добавить ссылку на службу wcf.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

В открывшимся окне службы необходимо указать имя службы wcf и ввести ее адрес.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

После этого необходимо развернуть дерево Windows Communication Foundation службы, чтобы удостоверится что выбран правильность выбора. В правой части должен быть отображен вызываемый метод.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Если настройка прошла корректно, то в обозревателе решения в консольном приложении отобразится ссылка на нашу службу wcf.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Web клиент для WCF

Теперь рассмотрим, как нам обратиться к службе wcf из веб-приложения. Процесс подключения службы не отличается от подключения в консольном приложении. Давайте рассмотрим как можно настроить авторизацию с помощью Windows. Это потребует дополнительной настройки приложения. Для начала создадим проект нового MVC приложения.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Нажимаем кнопку ОК, и попадаем в меню настройки создания веб-приложения. Выберем MVC шаблон и изменим способ авторизации. Для этого нажмем на кнопку Изменить способ проверки подлинности.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Выбираем авторизацию с помощью Windows и нажимаем ОК в обоих окнах.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

Для того, чтобы IISExpres перестала ругаться на нас за попытку создания windows-аутентификации нужно сделать ряд действий в наше службе.

Нужно дополнить наш web.config

Находим раздел и в нем вставляем следующее.

Далее нужно указать разделы биндинг и сервис

Раздел дополняем такой вот строчкой. В ней мы говорим, что именно такая схема аутентификации будет использоваться у нас.

На этом настройка web.config заканчивается. В итоге у нас должен получиться файл примерно следующего содержания.

Настройка applicationhost.config

Далее идем в папку vs нашего проекта (она скрыта по умолчанию). В ней ищем папку config, а уже в ней находим файл applicationhost.config, его то нам нужно будет поправить.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Находим вот такой раздел. Все Deny меняем на Allow, разрешая изменение установленного по умолчанию режима аутентификации.

Далее находим данную настройку. В ней false меняем на true, разрешая механизму работать.

И под конец находим вот эту настройку. Тут мы true меняем на false. Говоря нашему IISExpres, чтобы он не блокировал службу windows-аутентификации.

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Изменим контроллер главной страницы web-приложения, чтобы взывать нашу службу wcf.

Теперь нам осталось только изменить представление, чтобы вывести результат работы Windows Communication Foundation службы на экран пользователя.

Получаем следующий результат работы веб-приложения.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

Итоги WCF

Исходный код приложения можно скачать из репозитория https://github.com/shwanoff/wcf.

Мы подробно рассмотрели процесс создания и настройки Windows Communication Foundation службы, а также продемонстрировали как можно подключится к wcf через консольное и веб-приложение. Также рекомендую прочитать статью Принципы SOLID C#. И не забудьте подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.

Источник

Что такое Windows Communication Foundation What Is Windows Communication Foundation

Windows Communication Foundation (WCF) — это платформа для создания приложений, ориентированных на службы. Windows Communication Foundation (WCF) is a framework for building service-oriented applications. С помощью WCF можно передавать данные в виде асинхронных сообщений из одной конечной точки службы в другую. Using WCF, you can send data as asynchronous messages from one service endpoint to another. Конечная точка службы может входить в постоянно доступную службу, размещаемую в IIS, или представлять службу, размещаемую в приложении. A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. Конечная точка может быть клиентом службы, которая запрашивает данные от конечной точки службы. An endpoint can be a client of a service that requests data from a service endpoint. Сообщения могут представлять одиночный символ или одно слово, отправляемое в формате XML, или иметь вид сложного потока двоичных данных. The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. Далее представлено несколько образцов сценариев. A few sample scenarios include:

Защищенная служба для обработки бизнес-транзакций. A secure service to process business transactions.

Служба, передающая другим объектам текущие данные, такие как отчет о трафике, или другая служба наблюдения. A service that supplies current data to others, such as a traffic report or other monitoring service.

Служба бесед, которая позволяет двум пользователям общаться и обмениваться данными в реальном времени. A chat service that allows two people to communicate or exchange data in real time.

Приложение панели мониторинга, которая опрашивает одну или несколько служб и дает логическое представление полученных данных. A dashboard application that polls one or more services for data and presents it in a logical presentation.

Предоставление доступа к рабочему процессу, реализованному с помощью Windows Workflow Foundation, в виде службы WCF. Exposing a workflow implemented using Windows Workflow Foundation as a WCF service.

Приложение Silverlight для запроса последних каналов данных в службе. A Silverlight application to poll a service for the latest data feeds.

Хотя создание таких приложений было возможным до появления WCF, WCF упрощает разработку конечных точек, чем когда-либо. While creating such applications was possible prior to the existence of WCF, WCF makes the development of endpoints easier than ever. В целом, WCF призвана обеспечить управляемый подход к созданию веб-служб и клиентов веб-служб. In summary, WCF is designed to offer a manageable approach to creating Web services and Web service clients.

Возможности WCF Features of WCF

В состав WCF входит следующий набор функций. WCF includes the following set of features. Дополнительные сведения см. в разделе сведения о функции WCF. For more information, see WCF Feature Details.

Сервис-ориентированность Service Orientation

Совместимость Interoperability

WCF реализует современные отраслевые стандарты для взаимодействия веб-служб. WCF implements modern industry standards for Web service interoperability. Дополнительные сведения о поддерживаемых стандартах см. в статье взаимодействие и интеграция. For more information about the supported standards, see Interoperability and Integration.

Несколько шаблонов сообщений Multiple Message Patterns

Обмен сообщениями выполняется по одному из нескольких шаблонов. Messages are exchanged in one of several patterns. Чаще всего используется шаблон «запрос-ответ», когда одна конечная точка запрашивает данные от другой конечной точки. The most common pattern is the request/reply pattern, where one endpoint requests data from a second endpoint. Вторая конечная точка отвечает. The second endpoint replies. Существуют и другие шаблоны, например одностороннее сообщение, когда одна конечная точка отправляет сообщение, не ожидая ответа. There are other patterns such as a one-way message in which a single endpoint sends a message without any expectation of a reply. Более сложным является шаблон дуплексного обмена, когда две конечные точки устанавливают соединение и отправляют данные в обоих направлениях подобно программе обмена мгновенными сообщениями. A more complex pattern is the duplex exchange pattern where two endpoints establish a connection and send data back and forth, similar to an instant messaging program. Дополнительные сведения о реализации различных шаблонов обмена сообщениями с помощью WCF см. в разделе контракты. For more information about how to implement different message exchange patterns using WCF see Contracts.

Метаданные службы Service Metadata

WCF поддерживает публикацию метаданных службы с использованием форматов, указанных в отраслевых стандартах, таких как WSDL, XML Schema и WS-Policy. WCF supports publishing service metadata using formats specified in industry standards such as WSDL, XML Schema and WS-Policy. Эти метаданные можно использовать для автоматического создания и настройки клиентов для доступа к службам WCF. This metadata can be used to automatically generate and configure clients for accessing WCF services. Метаданные могут публиковаться через HTTP и HTTPS или с использованием стандарта обмена метаданными веб-служб. Metadata can be published over HTTP and HTTPS or using the Web Service Metadata Exchange standard. Дополнительные сведения см. в разделе Метаданные. For more information, see Metadata.

Контракты данных Data Contracts

Безопасность Security

Сообщения можно шифровать для защиты конфиденциальности и требовать от пользователей проходить проверку подлинности перед приемом сообщений. Messages can be encrypted to protect privacy and you can require users to authenticate themselves before being allowed to receive messages. Можно реализовать широко известные стандарты безопасности, такие как SSL и WS-SecureConversation. Security can be implemented using well-known standards such as SSL or WS-SecureConversation. Дополнительные сведения см. в статье Безопасность. For more information, see Security.

Несколько транспортов и кодировок Multiple Transports and Encodings

Сообщения могут отправляться по любому из нескольких встроенных транспортных протоколов в различных кодировках. Messages can be sent on any of several built-in transport protocols and encodings. Наиболее распространенный протокол и кодировка — это отправка сообщений SOAP, закодированных в виде текста, с использованием протокола HTTP для использования в Интернете. The most common protocol and encoding is to send text encoded SOAP messages using the HyperText Transfer Protocol (HTTP) for use on the World Wide Web. Кроме того, WCF позволяет отсылать сообщения по протоколу TCP, именованным каналам или MSMQ. Alternatively, WCF allows you to send messages over TCP, named pipes, or MSMQ. Сообщения можно кодировать в виде текста или использовать оптимизированный двоичный формат. These messages can be encoded as text or using an optimized binary format. Двоичные данные можно эффективно отправлять с использованием стандарта MTOM. Binary data can be sent efficiently using the MTOM standard. Если ни один из предоставляемых транспортов и кодировок не подходит к текущим требованиям, вы можете создать собственный пользовательский транспорт или кодировку. If none of the provided transports or encodings suit your needs you can create your own custom transport or encoding. Дополнительные сведения о транспортах и кодировках, поддерживаемых WCF, см. в статье транспорты. For more information about transports and encodings supported by WCF see Transports.

Надежные сообщения и сообщения в очереди Reliable and Queued Messages

WCF поддерживает надежный обмен сообщениями, используя надежные сеансы, реализованные с помощью WS-Reliable обмена сообщениями и MSMQ. WCF supports reliable message exchange using reliable sessions implemented over WS-Reliable Messaging and using MSMQ. Дополнительные сведения о поддержке надежных и очередных сообщений в WCF см. в статье очереди и надежные сеансы. For more information about reliable and queued messaging support in WCF see Queues and Reliable Sessions.

Устойчивые сообщения Durable Messages

Устойчивые сообщения не теряются в случае перебоев связи. A durable message is one that is never lost due to a disruption in the communication. Сообщения, передаваемые по устойчивому шаблону, всегда сохраняются в базе данных. The messages in a durable message pattern are always saved to a database. Если происходит перебой связи, база данных позволяет возобновить обмен сообщениями после восстановления соединения. If a disruption occurs, the database allows you to resume the message exchange when the connection is restored. Вы также можете создать устойчивое сообщение с помощью Windows Workflow Foundation (WF). You can also create a durable message using the Windows Workflow Foundation (WF). Дополнительные сведения см. в разделе службы рабочих процессов. For more information, see Workflow Services.

Транзакции Transactions

WCF также поддерживает транзакции с использованием одной из трех моделей транзакций: WS-Атомиктрансактионс, API-интерфейсы в System.Transactions пространстве имен и Microsoft координатор распределенных транзакций. WCF also supports transactions using one of three transaction models: WS-AtomicTransactions, the APIs in the System.Transactions namespace, and Microsoft Distributed Transaction Coordinator. Дополнительные сведения о поддержке транзакций в WCF см. в разделе транзакции. For more information about transaction support in WCF see Transactions.

Поддержка AJAX и REST AJAX and REST Support

Расширяемость Extensibility

Архитектура WCF имеет ряд точек расширения. The WCF architecture has a number of extensibility points. Если требуются дополнительные возможности, поддерживаются точки входа, посредством которых можно настроить поведение службы. If extra capability is required, there are a number of entry points that allow you to customize the behavior of a service. Дополнительные сведения о доступных точках расширения см. в разделе Расширение WCF. For more information about available extensibility points see Extending WCF.

Интеграция WCF с другими технологиями Майкрософт WCF Integration with Other Microsoft Technologies

WCF — это гибкая платформа. WCF is a flexible platform. Из-за такой крайней гибкости WCF также используется в нескольких других продуктах Майкрософт. Because of this extreme flexibility, WCF is also used in several other Microsoft products. Зная основы WCF, вы получаете мгновенное преимущество, если вы также используете любой из этих продуктов. By understanding the basics of WCF, you have an immediate advantage if you also use any of these products.

Первая технология, связанная с WCF, была Windows Workflow Foundationом (WF). The first technology to pair with WCF was the Windows Workflow Foundation (WF). Рабочие процессы упрощают разработку приложений, инкапсулирующие шаги в рабочем процессе как «действия». Workflows simplify application development by encapsulating steps in the workflow as «activities.» В первой версии Windows Workflow Foundation разработчику пришлось создавать узел для рабочего процесса. In the first version of Windows Workflow Foundation, a developer had to create a host for the workflow. Следующая версия Windows Workflow Foundation была интегрирована с WCF. The next version of Windows Workflow Foundation was integrated with WCF. Это позволяло легко размещать любой рабочий процесс в службе WCF. That allowed any workflow to be easily hosted in a WCF service. Это можно сделать, автоматически выбрав тип проекта WF/WCF в Visual Studio 2012 или более поздней версии. You can do this by automatically choosing the WF/WCF project type in Visual Studio 2012 or later.

Microsoft BizTalk Server R2 также использует WCF в качестве коммуникационной технологии. Microsoft BizTalk Server R2 also utilizes WCF as a communication technology. BizTalk предназначен для получения и преобразования данных из одного стандартного формата в другой. BizTalk is designed to receive and transform data from one standardized format to another. Сообщения должны доставляться в центральный ящик, где сообщение может преобразовываться по строгому сопоставления или с использованием одной из функций BizTalk, таких как подсистема рабочих процессов. Messages must be delivered to its central message box where the message can be transformed using either a strict mapping or by using one of the BizTalk features such as its workflow engine. Теперь BizTalk может использовать бизнес-адаптер WCF для доставки сообщений в окно сообщения. BizTalk can now use the WCF Line of Business (LOB) adapter to deliver messages to the message box.

Платформа Microsoft Silverlight предназначена для создания многофункциональных веб-приложений широкой совместимости и дает разработчикам возможность создавать веб-узлы, интенсивно использующие мультимедиа-функции (например, потоковое видео). Microsoft Silverlight is a platform for creating interoperable, rich Web applications that allow developers to create media-intensive Web sites (such as streaming video). Начиная с версии 2, Silverlight внедряет WCF в качестве технологии связи для подключения приложений Silverlight к конечным точкам WCF. Beginning with version 2, Silverlight has incorporated WCF as a communication technology to connect Silverlight applications to WCF endpoints.

Функции размещения сервера приложений Windows Server AppFabric специально разработаны для развертывания приложений, использующих WCF для обмена данными, и управления ими. The hosting features of Windows Server AppFabric application server are specifically designed for deploying and managing applications that use WCF for communication. Функции размещения включают разнообразные средства и параметры конфигурации, специально разработанные для приложений с поддержкой WCF. The hosting features include rich tooling and configuration options specifically designed for WCF-enabled applications.

Источник

Пример создания WCF-сервиса, работающего внутри службы Windows

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

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

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

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

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

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

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

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

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

При этом будет создан новый класс 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 я решил не добавлять — обойдёмся и без него).

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

Т.е. можно запускать эту утилиту, указав только одну конечную точку, либо http либо net.tcp.

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

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

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

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

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

Затем набросаем на форму 3 кнопки, текстовое поле textBox1 (пользователь вводит сюда строку для отправки на сервер) и поле richTextbox1 (имитация подсистемы сообщений нашего приложения – именно в это поле будут поступать сообщения от программы, в том числе и те, что вернул нам сервис)

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

Компилируем и запускаем с другой машины из той же сети – и тестируем сервис, нажав сначала btn_Start, а затем отправляя сервису сообщения нажатием btn_Send.

Windows communication foundation non http activation что это. Смотреть фото Windows communication foundation non http activation что это. Смотреть картинку Windows communication foundation non http activation что это. Картинка про Windows communication foundation non http activation что это. Фото Windows communication foundation non http activation что это

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

http://localhost:9001/MyService
а работали только с

net.tcp://localhost:9002/MyService
(вы легко сможете это сделать самостоятельно – раз уж вам net.tcp по плечу, то уж http-то с закрытыми глазами сделаете).

Кроме того, мы не использовали файл App.config, создав на клиенте конечную точку не с помощью настроек, а с помощью кода C#. Причины тому – субъективные – автор не любит возиться с XML-настройками, а по возможности всё делает явно в коде. Спасибо за внимание!

Лирическое отступление. Автор статейки познакомился с языком C# в марте сего года, первое приложение на C# написал в мае (до этого много лет формошлёпил на Delphi и даже на MS Access).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *