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


Конечные точки SOAP и HTTP

В примере SoapAndHttpEndpoints показано, как реализовать службу на основе RPC и предоставить ее в формате SOAP и формате "Обычный старый XML" (POX) с помощью модели веб-программирования WCF. Дополнительные сведения о привязке HTTP для службы см. в примере базовой службы HTTP. В данном образце акцент сделан на особенностях предоставления одной и той же службы через протокол SOAP и HTTP с использованием разных привязок.

Что демонстрирует

Предоставление службы RPC по протоколу SOAP и HTTP с помощью WCF.

Обсуждение

Этот пример состоит из двух компонентов: проекта веб-приложения (службы), содержащего службу WCF и консольное приложение (клиент), которое вызывает операции службы с помощью привязок SOAP и HTTP.

Служба WCF предоставляет 2 операции —GetData и PutData — это эхо строки, передаваемой в качестве входных данных. Операции службы помечены атрибутами WebGetAttribute и WebInvokeAttribute. Эти атрибуты управляют HTTP-проекцией операций. Кроме того, они помечены атрибутом OperationContractAttribute, который позволяет предоставлять их через привязки протокола SOAP. Метод службы PutData создает исключение WebFaultException, которое отправляется обратно по протоколу HTTP с помощью кода состояния HTTP и отправляется обратно по протоколу SOAP в виде сбоя SOAP.

Файл конфигурации Web.config настраивает службу WCF с 3 конечными точками:

  • Конечная точка ~/service.svc/mex предоставляет доступ к метаданным службы клиентам на основе SOAP.

  • Конечная точка ~/service.svc/http позволяет клиентам получать доступ к службе с использованием привязки HTTP.

  • Конечная точка ~/service.svc/soap позволяет клиентам получать доступ к службе с использованием привязки протокола SOAP.

Конечная точка HTTP настроена со стандартной конечной <webHttp> точкой, для которой helpEnabled задано значение true. В результате этого служба предоставляет справочную страницу на основе XHTML по адресу ~/service.svc/http/help, которую клиенты на основе HTTP могут использовать для доступа к службе.

Клиентский проект демонстрирует доступ к службе с помощью прокси-сервера SOAP (созданного с помощью добавления ссылки на службу) и доступа к службе с помощью WebClient.

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

Запуск образца

  1. Откройте решение для образца «SOAP and HTTP Endpoints».

  2. Нажмите клавиши CTRL+SHIFT+B, чтобы создать решение.

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

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

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

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

  7. Во время работы образца клиент записывает состояние текущего действия.

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

  9. Чтобы прекратить отладку службы, нажмите клавиши SHIFT+F5.

  10. В области уведомлений Windows щелкните правой кнопкой мыши значок сервера разработки ASP.NET и выберите " Остановить " в контекстном меню.