Программирование >>  Программирование с использованием ajax 

1 ... 374 375 376 [ 377 ] 378 379 380 ... 396


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

Хостинг

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

□ Web-сервер. WCF-службы, роль хоста для которых выполняет IIS, больше всего похожи на Web-службы. Однако в WCF-службах можно использовать такие дополнительные функциональные возможности и средства безопасности, которые реализовать в Web-службах очень трудно. Кроме того, их можно интегрировать со средствами IIS, например, с системой безопасности IIS.

□ Исполняемая программа. В роли хоста для WCF-службы можно использовать приложения любого из тех типов, которые можно создавать в .NET, т.е. и консольные приложения, и прможения Windows Forms, и приложения WPF

□ Служба Windows. В роли хоста для WCF-службы можно также использовать и службы Windows, а вместе с ними и предоставляемые ими полезные функциональные возможности, вроде возможности автоматического запуска и возможности восстановления после сбоев.

□ Служба активации Windows (Windows Activation Service - WAS). Эта служба предназначена специально для хостинга WCF-служб и, по сути, представляет собой простую версию IIS, которой можно пользоваться в тех случаях, когда сервер lis не доступен.

Два варианта в этом списке - IIS и WAS - предоставляют для WCF-служб полезные возможности, вроде активации, повторного использования циклов и организации пулов объектов. В случае применения любого из этих двух вариантов WCF-служба считается службой с собственным хостом или хостингом (self-hosted). Это вовсе необязательно плохо, поскольку дополнительные возможности, предлагаемые средами-хостами, могут и не требоваться. Однако в случае служб с собственными хостами в действительности необходимо писать больше кода.

Программирование с использованием WCF

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

□ Определение контрактов WCF-служб.

□ WCF-службы с собственными хостами.



Практическое заняти СоЗДание прОСТОЙ WCF-СЛужбы

И клиентского приложения для нее

1. Создайте новый проект типа приложения службы WCF (WCF Service Application) по имени Ch35Ex01 и сохраните его в каталоге С: \BegVCSharp\Chapter35.

2. Добавьте в решение консольное прможение с именем Ch35Ex01Client.

3. В меню Build (Сборка) выберите пункт Build Solution (Собрать решение).

4. Щелкните правой кнопкой мыши на проекте Ch35Ex01 в окне Solution Explorer и выберите в контекстном меню, которое появится после этого, пункт Add Service Reference (Добавить ссылку на службу).

5. В диалоговом окне Add Service Reference (Добавление ссылки на службу), которое отобразится на экране далее, щелкните на кнопке Discover (Обнаружить).

6. После запуска Web-сервера разработки и загрузки информации о службе WCF, разверните ссылку, чтобы просмотреть детали, как показано на рис. 35.2 (номер порта, конечно, может выглядеть и по-другому).

Add Service Refefence

То see а list ol available jerviccj on a jpeciftc $erv r, enter a service URI and click Go. To browse for available services, click Discover.

Address

httpy/localhojt51173/Seivicel$vc [j£pj [ Discover

Services;

В 0>Ш{ Servicel svc e У Servicel

♦ GetData

♦ GetDataUsingDataContract

> 1 servicelsl found at address httpgЛocalho$t51173/Ser4cel.svc

ServiceReferencel

[ Advanced... I

Puc. 35.2. Просмотр деталей ссыпки

7. Щелкните на кнопке ОК, чтобы добавить ссылку на службу.

8. Измените код в файле Program, cs приложения Ch35Ex01Client следующим образом:

using System;

using System.Collections.Generic; using System.Ling; using System.Text;

using Ch35Ex01Client. ServiceReferencel;

namespace Ch35Ex01Client (



static void Main(string[] args) {

string numericlnput = null;

int intParam;

Console.WriteLine( Enter an integer and press enter to call the WCF service. ) ; Введ11те целое число и нажмите Enter, чтобы вызвать службу WCF numericlnput = Console. ReadLine () ;

while (!int.TryParse(numericlnput, out intParam)); ServicelClient client = new ServicelClient () ; Console.WriteLine(client.GetData(intParam)); Console.WriteLine( Press an key to exit. );

Для выхода нажмите любую клавишу Console.ReadKey();

9. Щелкните правой кнопкой мыши на решении в окне Solution Explorer и выберите в контекстном меню пункт Set StartUp Projects (Установка стартовых проектов).

10. Сделайте оба проекта стартовыми, как показано на рис. 35.3, и щелкните на кнопке ОК.

SoltJt n -Ch35ExOV Property Ради

Common Propf rtcs Startup Project Project Dependendei Debug Source Files

Configuration Properties

Current selection Single Jtertup project

# Multiple Jtertup projects: Project Ch35ExOl Ch35ExOlCli nt

Actton

Stttrt Ц

0 1 c l J ( JiiPli,.

Puc. 35.3. Превращение проектов в стартовые

11. Щелкните правой кнопкой мыши на файле Servicel. svc в Ch35Ex01 и выберите в контекстном меню пункт Set а Startup Page (Сделать стартовой страницей).

12. Запустите приложение. Если появится соответствующее приглашение, щелкните на кнопке ОК, чтобы включить отладку в Web. con fig. Далее введите в окне консольного приложения какое-то число и нажмите клавишу <Enter>. На рис. 35.4 показан результат, который должен получиться.



1 ... 374 375 376 [ 377 ] 378 379 380 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика