Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

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




  •  Часы


  •  Поиск

Optimaze » Программирование » Простой пример WCF хостинга в консольном приложении (console application)




Простой пример WCF хостинга в консольном приложении (console application)

  1. Сервис
  2. Хостинг сервиса (Service hoster)


WCF - последнее решение от Microsoft для организации взаимодействия разрозненных элементов систем на платформе .NET. В интернете достаточно информации по отдельным аспектам этого вопроса, в этой статье хочу представить простейший пример сервиса и клиента (и тот и другой являются консольными приложениями).

 

Сервис

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

  • [ServiceContract]
  • public interface IMessageService
  • {
  • [OperationContract]
  • string GetMessage();
  • }

Напишем для этого сервиса реализацию:

  • [ServiceBehavior(InstanceContextMode = InstanceContextMode. Single)]
  • public class DummyMessageService: IMessageService
  • {
  • public string GetMessage()
  • {
  • return "Hello world!";
  • }
  • }

Реализация конечно идиотская, но для примера - то, что нужно. Единственное, на что следует обратить внимание - это атрибут ServiceBehavior. Этот атрибут нужен чтобы указать WCF-фреймворку

 

Хостинг сервиса (Service hoster)

Для хостинга сервиса создадим новый консольный проект и в классе Program напишем:

 

  • class Program
  •     {
  •         static void Main(string[] args)
  •         {
  •             using (var serviceHost = new ServiceHost(new DummyMessageService()))
  •             {
  •                 try
  •                 {
  •                     serviceHost. Open();
  •                     Console. WriteLine("Service was succesfully hosted. Press [enter] to exit... ");
  •                     Console. ReadLine();
  •                 } catch(Exception ex)
  •                 {
  •                     Console. WriteLine("Error occured while hosting service. Press [enter] to exit... ");
  •                     Console. WriteLine(ex. Message);
  •                     Console. ReadLine();
  •                 }
  •             }
  •         }
  •     }

 

Здесь все предельно понятно: создается объект ServiceHost, в конструктор которого передается инстанция сервиса. Далее метод Open этого объекта окрывает хостинг.

 

Тут основной тег - service. Его атрибут name должен совпадать с полным именем класса реализации сервиса. Следующий важный тег - endpoint - здесь описывается адрес, по которому будет доступен наш сервис, binding-конфигурация и контракт сервиса (полное имя интерфейса).

 

Вот и все! Если запустить этот проект, то фраза в консоли “Service was succesfully hosted. Press [enter] to exit… ” будет свидетельствовать о том, что все нормально захостилось.



Рейтинг: 4.6/5, основан на 25 голосах.


Нравится



Вернутся назад


   

Вам будет интересно:

Классы в библиотеке Prototype

Программистам синтаксис для описания прототипов и конструкторов в JavaScript может показаться слегка громоздким.

Библиотека NHibernate

Тут на помощь пришла библиотека NHibernate, являющаяся реализацией под технологию .NET библиотеки Hibernate под Java.

Восстановление NTFS в Ubuntu

После перезагрузки Убунту заругалась и отказалась монтировать диск – мол, ошибки в структуре.

Создание нестандартных настроек WP-темы

Объясню, в частности, как организовать загрузку файла юзера, с последующим использованием его в теме.



  •  Публикации


8 методов раскрутки своего форума с нуля

8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

Как привлекать посетителей на проект

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

Про MySQL, серверы и PayPal

Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

Реклама в Твиттере. Как подать свой продукт

Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

Пока блог на локалхосте

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

Авторитет блоггера притягивает

Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.