Поделиться через


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, который используется клиентом и службой. Во время выполнения клиентского консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.

Использование этого образца

  1. Откройте решение для образца ASP.NET Routes Integration в среде Visual Studio 2010.

  2. Нажмите клавишу F6 для построения решения.

  3. Если окно Обозреватель решений не открыто, нажмите клавиши «CTRL+W, S», чтобы открыть его.

  4. В окне Обозреватель решений щелкните правой кнопкой мыши проект Service, поместите курсор над пунктом контекстного меню Отладка, чтобы отобразить контекстное меню Запустить новый экземпляр, и выберите пункт Запустить новый экземпляр. Запускается сервер разработки ASP.NET, на котором размещается служба.

  5. В окне Обозреватель решений щелкните правой кнопкой мыши проект Client, поместите курсор над пунктом контекстного меню Отладка, чтобы отобразить контекстное меню Запустить новый экземпляр, и выберите пункт Запустить новый экземпляр.

  6. На клиенте открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в веб-обозревателе. Во время работы образца клиент записывает состояние текущего действия.

  7. Чтобы завершить клиентское консольное приложение, нажмите любую клавишу.

  8. Нажмите сочетание клавиш Shift+F5, чтобы остановить отладку службы, в области уведомлений Windows щелкните правой кнопкой мыши значок сервера разработчика ASP.NET и выберите в контекстном меню пункт Остановить.

Ee662952.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\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