AspNetRouteIntegration
Этот образец демонстрирует размещение службы REST Windows Communication Foundation (WCF) с помощью маршрутов ASP.NET. Образец Основная служба ресурсов показывает резидентную версию этого сценария, и в нем подробно рассматривается реализация службы. В этом разделе основное внимание уделено функции интеграции с ASP.NET. Дополнительные сведения о маршрутизации ASP.NET см. в разделе System.Web.Routing.
Подробные сведения об образце
Служба WCF предоставляет доступ к коллекции клиентов в стиле REST (относительно ресурсов). Как и службу WCF на основе SOAP, эту службу можно разместить в ASP.NET с помощью SVC-файла. Однако зачастую это нежелательно для работы по HTTP, поскольку в этом случае для службы требуется указание SVC-файла в URL. Кроме того, в этом случае требуется развертывание SVC-файла вместе с библиотекой службы. Этих ограничений можно избежать, разместив службы с помощью маршрутов ASP.NET, как показано в данном образце.
Этот образец размещает службы в ASP.NET путем добавления маршрута ServiceRoute в файл Global.asax. Маршрут ServiceRoute указывает тип службы (в этом случае «Service»), тип фабрики узла служб, который должен использоваться для службы (в этом случае WebServiceHostFactory) и базовый адрес HTTP для службы (в этом случае «~/Customers»).
Помимо этого, в образец включен файл Web.config, который добавляет модуль UrlRoutingModule (для включения маршрутов ASP.NET), а также конфигурацию для службы. В частности, эта конфигурация задает службе WCF конечную точку WebHttpEndpoint по умолчанию, параметру HelpEnabled которой установлено значение true. В результате этого инфраструктура WCF создает автоматическую страницу справки в формате HTML по адресу https://localhost/Customers/help
, которая предоставляет сведения о том, как сформировать запросы HTTP службе и как получить доступ к ответу службы в формате HTTP, например образец того, как данные покупателя представлены в форматах XML и JSON.
Предоставление таким способом доступа к коллекции покупателей (и в целом к любому ресурсу) позволяет клиенту взаимодействовать со службой единым образом с помощью URI и команд HTTP GET, PUT, DELETE и POST.
В файле Program.cs из проекта «Клиент» показывается, как можно разработать клиент с помощью HttpWebRequest. Заметьте, что это лишь один из способов доступа к службе WCF. Также возможен доступ к службе с помощью других классов .NET Framework, например фабрики каналов WCF и WebClient. В других образцах из пакета SDK (например, образец Базовая служба HTTP и образец Автоматический выбор формата) показано, как использовать эти классы для связи со службой WCF.
Этот образец состоит из трех проектов.
- Служба
Проект веб-приложения, в который включена служба WCF HTTP, размещенная в ASP.NET.
- Клиент
Проект консольного приложения, вызывающий службу.
- Common
Общая библиотека, содержащая типCustomer
, который используется клиентом и службой. Во время выполнения клиентского консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.
Использование этого образца
Откройте решение для образца ASP.NET Routes Integration в среде Visual Studio 2010.
Нажмите клавишу F6 для построения решения.
Если окно Обозреватель решений не открыто, нажмите клавиши «CTRL+W, S», чтобы открыть его.
В окне Обозреватель решений щелкните правой кнопкой мыши проект Service, поместите курсор над пунктом контекстного меню Отладка, чтобы отобразить контекстное меню Запустить новый экземпляр, и выберите пункт Запустить новый экземпляр. Запускается сервер разработки ASP.NET, на котором размещается служба.
В окне Обозреватель решений щелкните правой кнопкой мыши проект Client, поместите курсор над пунктом контекстного меню Отладка, чтобы отобразить контекстное меню Запустить новый экземпляр, и выберите пункт Запустить новый экземпляр.
На клиенте открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в веб-обозревателе. Во время работы образца клиент записывает состояние текущего действия.
Чтобы завершить клиентское консольное приложение, нажмите любую клавишу.
Нажмите сочетание клавиш Shift+F5, чтобы остановить отладку службы, в области уведомлений Windows щелкните правой кнопкой мыши значок сервера разработчика ASP.NET и выберите в контекстном меню пункт Остановить.
![]() |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\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\AspNetRouteIntegration
|