Partilhar via


Pontos de extremidade SOAP e HTTP

O exemplo SoapAndHttpEndpoints demonstra como implementar um serviço baseado em RPC e expô-lo no formato SOAP e no formato "Plain Old XML" (POX) usando o modelo de programação da Web WCF. Consulte o Exemplo de Serviço HTTP Básico para obter mais detalhes sobre a associação HTTP para o serviço. Este exemplo se concentra nos detalhes que dizem respeito à exposição do mesmo serviço por SOAP e HTTP usando associações diferentes.

Demonstra

Expor um serviço RPC sobre SOAP e HTTP usando WCF.

Debate

Este exemplo consiste em dois componentes: um projeto de aplicativo Web (Service) que contém um serviço WCF e um aplicativo de console (Client) que invoca operações de serviço usando ligações SOAP e HTTP.

O serviço WCF expõe 2 operações –GetData e PutData – que ecoam a cadeia de caracteres que foi passada como entrada. As operações de serviço são anotadas com WebGetAttribute e WebInvokeAttribute. Esses atributos controlam a projeção HTTP dessas operações. Além disso, eles são anotados com OperationContractAttribute, o que permite que eles sejam expostos através de ligações SOAP. O método do PutData serviço lança um WebFaultException, que é enviado de volta por HTTP usando o código de status HTTP e é enviado de volta por SOAP como uma falha SOAP.

O arquivo Web.config configura o serviço WCF com 3 pontos de extremidade:

  • O ponto de extremidade ~/service.svc/mex que expõe os metadados do serviço para acesso por clientes baseados em SOAP.

  • O ponto de extremidade ~/service.svc/http que permite que os clientes acessem o serviço usando a associação HTTP.

  • O ponto de extremidade ~/service.svc/soap que permite que os clientes acessem o serviço usando a ligação SOAP sobre HTTP.

O ponto de extremidade HTTP é configurado com um ponto de <webHttp> extremidade padrão que foi helpEnabled definido como true. Como resultado, o serviço expõe uma página de ajuda baseada em XHTML em ~/service.svc/http/help que os clientes baseados em HTTP podem usar para acessar o serviço.

O projeto cliente demonstra acessar o serviço usando um proxy SOAP (gerado por meio de Adicionar Referência de Serviço) e acessar o serviço usando WebClient.

O exemplo consiste em um serviço hospedado na Web e um aplicativo de console. À medida que o aplicativo de console é executado, o cliente faz solicitações ao serviço e grava as informações pertinentes das respostas na janela do console.

Para executar o exemplo

  1. Abra a solução para o exemplo de pontos de extremidade SOAP e HTTP.

  2. Pressione Ctrl+Shift+B para criar a solução.

  3. Se ainda não estiver aberto, pressione CTRL+W, S para abrir a janela Gerenciador de Soluções .

  4. Na janela Gerenciador de Soluções, clique com o botão direito do mouse no projeto Serviço e coloque o cursor sobre a opção do menu de contexto Depurar para que o menu de contexto Iniciar Nova Instância seja exibido. Clique em Iniciar nova instância. Isso inicia o servidor de desenvolvimento ASP.NET, que hospeda o serviço.

  5. Nas janelas do Gerenciador de Soluções, clique com o botão direito do mouse no projeto Cliente e coloque o cursor sobre a opção do menu de contexto Depurar para que o menu de contexto Iniciar Nova Instância seja exibido. Clique em Iniciar nova instância.

  6. A janela do console do cliente é exibida e fornece o URI do serviço em execução e o URI da página de ajuda HTML para o serviço em execução. A qualquer momento, você pode exibir a página de ajuda HTML digitando o URI da página de ajuda em um navegador.

  7. À medida que o exemplo é executado, o cliente grava o status da atividade atual.

  8. Pressione qualquer tecla para encerrar o aplicativo de console do cliente.

  9. Pressione SHIFT+F5 para parar de depurar o serviço.

  10. Na Área de Notificação do Windows, clique com o botão direito do mouse no ícone do servidor de desenvolvimento ASP.NET e selecione Parar no menu de contexto.