Хостинг и развертывание сервиса WCF

Оценить
(2 голоса)

Для того чтобы ваш сервис мог принимать запросы, он должен выполняться и быть в актив­ном состоянии. Это означает, что он должен иметь в качестве хоста какую-то исполняющую среду. Вспомните из нашего описания Web-сервисов: их хостинг обеспечивал для нас IIS. Мы можем обеспечить с его помощью и хостинг ваших сервисов WCF. Однако есть и дру­гие возможности.

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

□    Self-Hosted (собственный). Сервис с собственным хостингом содержит сервис внутрй работающего исполняемого файла. Исполняемый файл — это написанный вами управ­ляемый код. Вы просто встраиваете в него еще один или несколько сервисов. Таким об­разом, сервис получает собственный хостинг. Дополнительный процесс для выполнения ему не требуется. Его временем жизни управляет время жизни исполняемого файла. Ко­гда исполняемый файл работает, то сервис слушает запросы и соответствующим обра­зом на них откликается. Если это не так, то сервис находится в нерабочем состоянии.

Сервисы с собственным хостингом хороши тогда, когда вашим клиентам нужно обме­ниваться друг с другом. Так происходит в одноранговых приложениях типа Microsoft Groove. Каждый клиент имеет сервисы, которые могут общаться с другими клиентами.

Для создания сервиса с собственным хостингом вы создаете (внутри вашего приложе­ния) экземпляр класса ServiceHost. Этому классу передается экземпляр вашего серви­са. Затем вы вызываете метод Open класса ServiceHost для того, чтобы начать хостинг сервиса. Когда работа закончена, вы вызываете метод Close.

□    Windows Service (сервис Windows). Вы можете обеспечить хостинг вашего сервиса WCF внутри сервиса Windows. Windows Service инсталлируется на компьютере как сервис. Сервис Windows можно запустить, остановить, а также запустить при перезагрузке сис­темы. Таким образом, сервисы Windows очень устойчивы и надежны для тех случаев, когда вам нужно, чтобы сервисы просто постоянно работали. Они поддерживаются на всех клиентских и серверных версиях операционных систем Windows.

Для создания сервиса Windows (который будет обеспечивать хостинг вашего сервиса WCF) вы создаете производный от ServiceBase класс. Затем вы перекрываете методы

Onstart и OnStop для того, чтобы настроить хост для вашего сервиса. В методе Onstart вы создаете глобальный экземпляр ServiceHost, а потом вызываете метод Open для того, чтобы начать прослушивать запросы. Затем вы просто вызываете метод Close метода OnStop.

И наконец, вы создаете класс инсталлятора для вашего сервиса — для инсталляции его в каталоге сервисов компьютера. Этот класс наследует от класса installer. Затем вы компилируете код и запускаете installutil для инсталляции сервиса на компьютер.

□    IIS. IIS может быть хостом для ваших сервисов WCF. Вы можете использовать многие встроенные в эту платформу преимущества, в том числе мониторинг, высокую готов­ность, высокую масштабируемость и т. д. Однако при хостинге в IIS можно использо­вать только транспорт HTTP. Во многих случаях это может быть ограничивающим фак­тором.

Для хостинга вашего сервиса WCF в IIS вам необходимо сначала создать новый каталог IIS и настроить его как приложение. Затем вы создаете svc-файл для представления ва­шего сервиса. Если вы использовали шаблон WCF из каталога Web-проектов, то он уже есть у вас по умолчанию. Этот файл должен содержать директиву для того, чтобы ASP.NET видела ваш сервис. Вот ее пример:

<%@ServiceHost language=c# Debug="true"

Service="WcfCustomerProfile.CustomerProfileService"%>

Затем вы можете развернуть ваш сервис в подкаталоге App Code каталога приложения IIS. Он содержит класс реализации сервиса, его интерфейс, а также конфигурационный файл.

□    WAS (Windows Process Activation Service). WAS появился в Windows Server 2008 (име­ется он также и в Windows Vista). WAS дает вам все преимущества IIS (мониторинг работоспособности, повторное использование процессов, активацию по сообщению и т. д.) и не ограничен одним только HTTP. WAS работает через HTTP, TCP, имено­ванные каналы и MSMQ. Кроме того, WAS не требует от вас написания кода хостинга (как в случае собственного хостинга и в варианте сервиса Windows). Вместо этого вы просто настраиваете WAS для того, чтобы он обеспечивал хостинг вашего сервиса.

Как видите, для хостинга вашего сервиса существует много вариантов. Каждый имеет свои достоинства и недостатки (в смысле настройки, кодирования, конфигурирования и развер­тывания). Вы можете потратить на изучение этих вариантов какое-то дополнительное время (в соответствии с вашими потребностями). Вы можете найти дополнительную информацию по каждому варианту в MSDN. Просто поищите "WCF Hosting Options", и вы найдете прак­тические руководства для каждого только что обсуждавшегося хоста.

Резюме
Наше представление об Интернете
Фундаментальные основы сервиса
Почему именно Web-сервисы ASP.NET и WCF?
Приложения Web-cepenca ASP.NET

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


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.