Конечные точки 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 и HTTP.

  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 и выберите " Остановить " в контекстном меню.