Criando o proxy de serviço Web

 

Publicado: dezembro de 2016

Aplicável a: SQL Server 2016 Preview

Um cliente e um serviço Web podem se comunicar usando mensagens SOAP que encapsulam os parâmetros de entrada e de saída como XML. Uma classe de proxy mapeia parâmetros para elementos XML e então envia as mensagens SOAP pela rede. Dessa forma, a classe proxy libera você de ter de se comunicar com o serviço Web no nível de SOAP e permite que você invoque métodos do serviço Web em qualquer ambiente de desenvolvimento que dê suporte a SOAP e a proxies de serviço Web.

Há duas maneiras de adicionar uma classe de proxy para seu projeto de desenvolvimento usando o Microsoft .NET Framework: com a ferramenta WSDL a .NET Frameworke adicionando uma referência da Web em Microsoft Visual Studio. As seções a seguir discutem este assunto em mais detalhes.

O SDK do .NET Framework inclui a ferramenta Wsdl.exe (Web Services Description Language), que permite a você gerar um proxy de serviço Web para uso em um ambiente de desenvolvimento do .NET Framework. A maneira mais comum para criar um proxy de cliente em linguagens que oferecem suporte a serviços da Web (atualmente, c# e Microsoft Visual Basic) é usar a ferramenta WSDL.

Para adicionar uma classe proxy ao seu projeto usando Wsdl.exe

  1. Em um prompt de comando, use Wsdl.exe para criar uma classe proxy, especificando (no mínimo) a URL do serviço Web Servidor de Relatório.

    Por exemplo, a instrução de prompt de comando a seguir especifica uma URL para o ponto de extremidade de gerenciamento do serviço Web Servidor de Relatório:

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl  
    
    

    A ferramenta WSDL aceita vários argumentos de prompt de comando para gerar um proxy. O exemplo anterior especifica a linguagem C#, um namespace sugerido para ser usado no proxy (para impedir a colisão de nomes se você estiver usando mais de um ponto de extremidade de serviço Web) e gera um arquivo C# chamado ReportingService2010.cs. Se o exemplo tivesse especificado Visual Basic, teria gerado um arquivo de proxy com o nome ReportingService2010.vb. Esse arquivo é criado no diretório a partir do qual você executou o comando.

  2. Compile a classe proxy em um arquivo de assembly (com a extensão .dll) e faça referência a ele em seu projeto, ou adicione a classe como um item de projeto.

    System_CAPS_ICON_note.jpg Observação


    Quando você adicionar uma classe proxy manualmente ao seu projeto, terá de acrescentar uma referência a System.Web.Services.dll. Se você adicionar o proxy usando uma referência da Web em Visual Studio .NET, a referência será criada automaticamente. Para obter mais informações, consulte "Adicionando o proxy usando uma referência da Web no Visual Studio" mais adiante neste tópico.

    Depois de adicionar a classe proxy como um item ao seu projeto, o arquivo associado será exibido no Gerenciador de Soluções.

  3. Para chamar o serviço programaticamente, crie uma instância da classe proxy.

    O exemplo de código a seguir mostra a sintaxe para criar uma instância do ReportingService2010 a classe de proxy em um projeto:

ReportingService2010 service = new ReportingService2010();  
  

Para obter mais informações sobre a ferramenta Wsdl.exe, incluindo a sua sintaxe completa, consulte "Ferramenta Web Services Description Language" na documentação do SDK do .NET Framework. Para obter uma explicação completa sobre proxies de serviço Web, consulte "Criando um proxy de serviço Web XML" na documentação do SDK do .NET Framework.

Uma referência Web permite que um projeto consuma um ou mais serviços Web. O Visual Studio permite que os usuários adicionem referências de serviço Web a projetos seguindo algumas etapas simples.

Para adicionar uma referência da Web a um projeto

  1. Em Solution Explorer, selecione o projeto que consumirá o serviço Web.

  2. Sobre o projeto menu, clique em Add Web Reference.

    O Add Web Reference caixa de diálogo é aberta.

  3. No URL , insira o caminho completo para o serviço Web do servidor de relatório.

    Uma URL simplificada para o ponto de extremidade de execução de relatório do serviço Web Servidor de Relatório poderia ser assim:

    http://<Server Name>/reportserver/reportexecution2005.asmx  
    
    

    A URL contém o domínio no qual o serviço Web Servidor de Relatório foi implantado, o nome da pasta que contém o serviço e o nome do arquivo de descoberta para o serviço. Para obter uma descrição completa dos diferentes elementos de URL, consulte acessando a SOAP API.

    Uma descrição dos métodos e das propriedades fornecidos pelo serviço Web é exibida no painel Navegador à esquerda.

    System_CAPS_ICON_note.jpg Observação


    Para obter mais informações sobre os itens associados ao serviço Web do servidor de relatório, consulte métodos de serviço de Web de servidor de relatório.

  4. Verifique se o seu projeto pode usar o serviço Web Servidor de Relatório e se você tem a permissão apropriada para acessar o servidor de relatório.

  5. No nome da referência Web campo, digite um nome que você usará em seu código para acessar o serviço Web do servidor de relatório programaticamente.

  6. Selecione o adicionar referência botão para criar uma referência em seu aplicativo para o serviço da Web.

    A nova referência aparece na Solution Explorer sob o nó de referências da Web para o projeto ativo, nomeado como especificado no nome da referência Web campo.

  7. Em Solution Explorer, expanda a pasta referências da Web para observar o namespace para as classes de referência da Web que estão disponíveis para os itens em seu projeto.

    Depois de adicionar uma referência Web ao seu projeto, os arquivos associados são exibidos em uma pasta dentro da pasta de referências da Web de Solution Explorer.

Depois de adicionar a referência da Web, use a sintaxe a seguir para criar uma instância da classe proxy:

myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();  
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  

Você também pode adicionar uma usando (importação na Visual Basic) diretriz para a referência de serviço Web do servidor de relatório. Se você usar essa política, não precisará qualificar os tipos completamente no namespace. Para fazer isso, adicione o código a seguir ao seu arquivo:

using myNamespace.myReferenceName;  

Serviço de Web do servidor de relatório
Criando aplicativos com o serviço Web e o .NET Framework
Referência técnica (SSRS)

Contribuições da comunidade

Mostrar: