Criando o proxy de serviço WebCreating the Web Service Proxy

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.A client and a Web service can communicate using SOAP messages, which encapsulate the input and output parameters as XML. Uma classe de proxy mapeia parâmetros para elementos XML e então envia as mensagens SOAP pela rede.A proxy class maps parameters to XML elements and then sends the SOAP messages over a network. 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.In this way, the proxy class frees you from having to communicate with the Web service at the SOAP level and allows you to invoke Web service methods in any development environment that supports SOAP and Web service proxies.

Há duas maneiras de adicionar uma classe proxy ao seu projeto de desenvolvimento usando o MicrosoftMicrosoft .NET Framework.NET Framework: com a ferramenta WSDL o .NET Framework.NET Frameworke adicionando uma referência Web em MicrosoftMicrosoft Visual StudioVisual Studio.There are two ways to add a proxy class to your development project using the MicrosoftMicrosoft .NET Framework.NET Framework: with the WSDL tool in the .NET Framework.NET Framework, and by adding a Web reference in MicrosoftMicrosoft Visual StudioVisual Studio. As seções a seguir discutem este assunto em mais detalhes.The following sections discuss this subject in further detail.

Adicionando o proxy usando a ferramenta WSDLAdding the Proxy Using the WSDL Tool

O SDK do .NET Framework.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.NET Framework.The .NET Framework.NET Framework SDK includes the Web Services Description Language tool (Wsdl.exe), which enables you to generate a Web service proxy for use in the .NET Framework.NET Framework development environment. A maneira mais comum para criar um proxy de cliente em idiomas que oferecem suporte a serviços Web (atualmente, c# e MicrosoftMicrosoft Visual BasicVisual Basic) é usar a ferramenta WSDL.The most common way to create a client proxy in languages that support Web services (currently C# and MicrosoftMicrosoft Visual BasicVisual Basic) is to use the WSDL tool.

Para adicionar uma classe proxy ao seu projeto usando Wsdl.exeTo add a proxy class to your project using 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.From a command prompt, use Wsdl.exe to create a proxy class, specifying (at a minimum) the URL to the Report Server Web service.

    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:For example, the following command prompt statement specifies a URL for the management endpoint of the Report Server Web service:

    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.The WSDL tool accepts a number of command-prompt arguments for generating a 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.The preceding example specifies the language C#, a suggested namespace to use in the proxy (to prevent name collision if using more than one Web service endpoint), and generates a C# file called ReportingService2010.cs. Se o exemplo tivesse especificado Visual BasicVisual Basic, teria gerado um arquivo de proxy com o nome ReportingService2010.vb.If the example had specified Visual BasicVisual Basic, the example would have generated a proxy file with the name ReportingService2010.vb. Esse arquivo é criado no diretório a partir do qual você executou o comando.This file is created in the directory from which you run the command.

  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.Compile the proxy class into an assembly file (with the extension .dll) and reference it in your project, or add the class as a project item.

    Observação

    Quando você adicionar uma classe proxy manualmente ao seu projeto, terá de acrescentar uma referência a System.Web.Services.dll.When you add a proxy class to your project manually, you need to add a reference to 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.If you add the proxy using a Web reference in Visual Studio .NET, the reference is automatically created for you. Para obter mais informações, consulte "Adicionando o proxy usando uma referência da Web no Visual Studio" mais adiante neste tópico.For more information, see "Adding the Proxy Using a Web Reference in Visual Studio" later in this topic.

    Depois de adicionar a classe proxy como um item ao seu projeto, o arquivo associado será exibido no Gerenciador de Soluções.After you add the proxy class as an item to your project, the associated file appears in Solution Explorer.

  3. Para chamar o serviço programaticamente, crie uma instância da classe proxy.To call the service programmatically, create an instance of the proxy class.

    O exemplo de código a seguir mostra a sintaxe para a criação de uma instância da classe proxy ReportingService2010 em um projeto:The following code example shows the syntax for creating an instance of the ReportingService2010 proxy class in a project:

Dim service As New ReportingService2010()  
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.NET Framework.For more information about the Wsdl.exe tool, including its full syntax, see "Web Services Description Language Tool" in the .NET Framework.NET Framework SDK documentation. 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.NET Framework.For a full explanation of Web service proxies, see "Creating an XML Web Service Proxy" in the .NET Framework.NET Framework SDK documentation.

Adicionando o proxy usando uma referência da Web no Visual StudioAdding the Proxy Using a Web Reference in Visual Studio

Uma referência Web permite que um projeto consuma um ou mais serviços Web.A Web reference enables a project to consume one or more Web services. O Visual StudioVisual Studio permite que os usuários adicionem referências de serviço Web a projetos seguindo algumas etapas simples. enables users to add Web service references to projects by following a few simple steps.

Para adicionar uma referência Web a um projetoTo add a Web reference to a project

  1. Em Solution Explorer, selecione o projeto que consumirá o serviço Web.In Solution Explorer, select the project that will consume the Web service.

  2. Sobre o projeto menu, clique em adicionar referência Web.On the Project menu, click Add Web Reference.

    O adicionar referência Web caixa de diálogo é aberta.The Add Web Reference dialog box opens.

  3. No URL campo, digite o caminho completo para o serviço Web do servidor de relatório.In the URL field, enter the complete path to the Report Server Web service.

    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:A simplified URL for the report execution endpoint of the Report Server Web service might look like this:

    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.The URL contains the domain in which the Report Server Web service is deployed, the name of the folder containing the service, and the name of the discovery file for the service. Para obter uma descrição completa dos diferentes elementos de URL, consulte acessando a API SOAP.For a complete description of the different URL elements, see Accessing the SOAP API.

    Uma descrição dos métodos e das propriedades fornecidos pelo serviço Web é exibida no painel Navegador à esquerda.A description of the methods and properties provided by the Web service appears in the Browser pane on the left.

    Observação

    Para obter mais informações sobre os itens associados ao serviço Web servidor de relatório, consulte métodos de Web do serviço do servidor de relatório.For more information about the items associated with the Report Server Web service, see Report Server Web Service Methods.

  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.Verify that your project can use the Report Server Web service, and that you have appropriate permission to access the report server.

  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.In the Web reference name field, enter a name that you will use in your code to access the Report Server Web service programmatically.

  6. Selecione o adicionar referência botão para criar uma referência em seu aplicativo para o serviço Web.Select the Add Reference button to create a reference in your application to the Web service.

    A nova referência aparece na Solution Explorer sob o nó referências da Web para o projeto ativo, nomeado como especificado no nome da referência Web campo.The new reference appears in Solution Explorer under the Web References node for the active project, named as specified in the Web reference name field.

  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.In Solution Explorer, expand the Web References folder to note the namespace for the Web reference classes that are available to the items in your project.

    Depois de adicionar uma referência Web ao seu projeto, os arquivos associados são exibidos em uma pasta dentro da pasta referências da Web de Gerenciador de soluções.After adding a Web reference to your project, the associated files are displayed in a folder within the Web References folder of Solution Explorer.

    Depois de adicionar a referência da Web, use a sintaxe a seguir para criar uma instância da classe proxy:After you add the Web reference, use the following syntax to create an instance of the proxy class:

Dim rs As New myNamespace.myReferenceName.ReportExecutionService()  
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
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 em Visual BasicVisual Basic) diretiva para a referência de serviço Web servidor de relatório.You can also add a using (Import in Visual BasicVisual Basic) directive to the Report Server Web service reference. Se você usar essa política, não precisará qualificar os tipos completamente no namespace.If you use this directive, you do not need to fully qualify the types in the namespace. Para fazer isso, adicione o código a seguir ao seu arquivo:To do this, add the following code to your file:

Import myNamespace.myReferenceName  
using myNamespace.myReferenceName;  

Consulte tambémSee Also

Serviço Web servidor de relatório Report Server Web Service
Criando aplicativos que usam o serviço Web e o .NET Framework Building Applications Using the Web Service and the .NET Framework
Referência técnica (SSRS) Technical Reference (SSRS)