Базовая служба HTTP
В образце демонстрируется способ реализации службы HTTP на основе RPC (такую службу часто называют службой POX (Plain Old XML — обычный XML)) с использованием модели программирования HTTP Windows Communication Foundation (WCF). Данный образец состоит из двух компонентов: резидентной службы HTTP WCF (Service.cs) и консольного приложения (Program.cs), создающего службу и выполняющего вызовы в этой службе.
Подробные сведения об образце
Служба WCF предоставляет 2 операции — EchoWithGet
и EchoWithPost
, которые возвращают строку, переданную им на входе.
Операция EchoWithGet
аннотируется WebGetAttribute, указывающим на обработку операцией HTTP-запросов GET. Поскольку WebGetAttribute не указывает явно UriTemplate, оператор ожидает передачи входной строки с помощью параметра строки запроса с именем s. Обратите внимание, что формат URI, ожидаемого службой, может быть изменен с помощью свойства UriTemplate.
Операция EchoWithPost
аннотируется WebInvokeAttribute, указывающим на то, что это не является операцией GET (имеющей побочные эффекты). Поскольку WebInvokeAttribute не указывает явно Method, операция обрабатывает HTTP-запросы POST, содержащие строку в тексте запроса (например, в формате XML). Обратите внимание, что метод HTTP и формат URI запроса можно изменить с помощью свойств Method и UriTemplate соответственно.
Файл App.config настраивает для службы WCF конечную точку по умолчанию WebHttpEndpoint, для свойства которого HelpEnabled задано значение true. В результате в инфраструктуре создается страница автоматической справки в формате HTML WCF в https://localhost:8000/Customers/help
, которая содержит данные о способах создания HTTP-запросов к службе и способах использования HTTP-ответов службы.
В Program.cs показаны способы использования фабрики каналов WCF для выполнения вызовов службы и обработки ответов. Заметьте, что это лишь один из способов доступа к службе WCF. Также возможен доступ к службе с помощью других классов .NET Framework, например HttpWebRequest и WebClient. В других образцах из пакета SDK (например, образец Автоматический выбор формата и образец Основная служба ресурсов) показано, как использовать эти классы для связи со службой WCF.
Образец состоит из резидентной службы и клиента, которые работают в консольном приложении. Во время выполнения консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.
Использование этого образца
Откройте решение в образце базовой службы Http. Для успешного выполнения образца среду Visual Studio 2010 необходимо запускать от имени администратора. Для этого щелкните правой кнопкой мыши значок Visual Studio 2010 и выберите в контекстном меню команду Запуск от имени администратора.
Нажмите клавишу F6 для построения решения, затем нажмите сочетание клавиш Ctrl-F5 для запуска консольного приложения без отладки. Открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в веб-обозревателе. Во время работы образца клиент записывает состояние текущего действия.
Чтобы завершить образец, нажмите любую клавишу.
![]() |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\WF_WCF_Samples
Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.
<диск_установки>:\WF_WCF_Samples\WCF\Basic\Web\BasicHttpService
|