|
Программирование >> Программирование с использованием ajax
Поскольку целью этой главы является предоставление лишь базовых сведений о 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 показан результат, который должен получиться.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |