Creazione del proxy del servizio WebCreating the Web Service Proxy

Un client e un servizio Web possono comunicare utilizzando messaggi SOAP, che incapsulano i parametri di input e di output in formato XML.A client and a Web service can communicate using SOAP messages, which encapsulate the input and output parameters as XML. Una classe proxy esegue il mapping dei parametri agli elementi XML, quindi invia i messaggi SOAP in una rete.A proxy class maps parameters to XML elements and then sends the SOAP messages over a network. In questo modo, la classe proxy elimina l'esigenza di comunicare con il servizio Web a livello SOAP e consente di richiamare i metodi del servizio Web in qualsiasi ambiente di sviluppo che supporti i proxy del servizio Web e SOAP.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.

Esistono due modi per aggiungere una classe proxy al progetto di sviluppo utilizzando la MicrosoftMicrosoft .NET Framework.NET Framework: con lo strumento WSDL nel .NET Framework.NET Frameworke aggiungendo un riferimento Web in 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. Nelle sezioni seguenti questo argomento viene illustrato in modo più dettagliato.The following sections discuss this subject in further detail.

Aggiunta del proxy utilizzando lo strumento WSDLAdding the Proxy Using the WSDL Tool

.NET Framework.NET Framework SDK include lo strumento WSDL (Web Services Description Language) (Wsdl.exe) che consente di generare un proxy del servizio Web per l'utilizzo nell'ambiente di sviluppo di .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. Il modo più comune per creare un proxy client in linguaggi che supportano servizi Web (attualmente c# e MicrosoftMicrosoft Visual BasicVisual Basic) consiste nell'utilizzare lo strumento 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.

Per aggiungere una classe proxy al progetto utilizzando Wsdl.exeTo add a proxy class to your project using Wsdl.exe

  1. Dal prompt dei comandi utilizzare Wsdl.exe per creare una classe proxy, specificando almeno l'URL del servizio Web ReportServer.From a command prompt, use Wsdl.exe to create a proxy class, specifying (at a minimum) the URL to the Report Server Web service.

    Nell'istruzione del prompt dei comandi seguente viene ad esempio specificato un URL per l'endpoint di gestione del servizio Web ReportServer: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  
    

    Lo strumento WSDL accetta diversi argomenti del prompt dei comandi per la generazione di un proxy.The WSDL tool accepts a number of command-prompt arguments for generating a proxy. Nell'esempio precedente sono specificati il linguaggio C# e uno spazio dei nomi suggerito da utilizzare nel proxy (per impedire il conflitto tra i nomi in caso di utilizzo di più di un endpoint servizio Web) e viene generato un file C# denominato 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 nell'esempio fosse stato specificato Visual BasicVisual Basic, sarebbe stato generato un file proxy denominato ReportingService2010.vb.If the example had specified Visual BasicVisual Basic, the example would have generated a proxy file with the name ReportingService2010.vb. Questo file viene creato nella directory dalla quale si esegue il comando.This file is created in the directory from which you run the command.

  2. Compilare la classe proxy in un file di assembly (con estensione dll) e farvi riferimento nel progetto oppure aggiungere la classe come elemento del progetto.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.

    Nota

    Quando si aggiunge manualmente una classe proxy al progetto, è necessario aggiungere un riferimento 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 si aggiunge il proxy utilizzando un riferimento Web in Visual Studio .NET, il riferimento viene creato automaticamente.If you add the proxy using a Web reference in Visual Studio .NET, the reference is automatically created for you. Per ulteriori informazioni, vedere "Aggiunta del proxy utilizzando un riferimento Web in Visual Studio" più avanti in questo argomento.For more information, see "Adding the Proxy Using a Web Reference in Visual Studio" later in this topic.

    Dopo avere aggiunto la classe proxy come elemento nel progetto, il file associato viene visualizzato in Esplora soluzioni.After you add the proxy class as an item to your project, the associated file appears in Solution Explorer.

  3. Per chiamare il servizio a livello di programmazione, creare un'istanza della classe proxy.To call the service programmatically, create an instance of the proxy class.

    Nell'esempio di codice seguente viene illustrata la sintassi per la creazione di un'istanza della classe proxy ReportingService2010 in un progetto.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();  

Per ulteriori informazioni sullo strumento Wsdl.exe, inclusa la sintassi completa, vedere l'argomento relativo allo strumento WSDL nella documentazione di .NET Framework.NET Framework SDK.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. Per una spiegazione completa relativa ai proxy del servizio Web, vedere l'argomento relativo alla creazione di un proxy del servizio Web XML nella documentazione di .NET Framework.NET Framework SDK.For a full explanation of Web service proxies, see "Creating an XML Web Service Proxy" in the .NET Framework.NET Framework SDK documentation.

Aggiunta del proxy utilizzando un riferimento Web in Visual StudioAdding the Proxy Using a Web Reference in Visual Studio

Un riferimento Web consente l'utilizzo di uno o più servizi Web in un progetto.A Web reference enables a project to consume one or more Web services. Visual StudioVisual Studio consente agli utenti di aggiungere ai progetti riferimenti al servizio Web tramite alcuni semplici passaggi. enables users to add Web service references to projects by following a few simple steps.

Per aggiungere un riferimento Web a un progettoTo add a Web reference to a project

  1. In Esplora, selezionare il progetto che verrà utilizzato il servizio Web.In Solution Explorer, select the project that will consume the Web service.

  2. Nel progetto menu, fare clic su Aggiungi riferimento Web.On the Project menu, click Add Web Reference.

    Il Aggiungi riferimento Web verrà visualizzata la finestra di dialogo.The Add Web Reference dialog box opens.

  3. Nel URL immettere il percorso completo al servizio Web ReportServer.In the URL field, enter the complete path to the Report Server Web service.

    Un URL semplificato per l'endpoint di esecuzione del report del servizio Web ReportServer potrebbe essere simile al seguente:A simplified URL for the report execution endpoint of the Report Server Web service might look like this:

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

    L'URL contiene il dominio nel quale viene distribuito il servizio Web ReportServer, il nome della cartella contenente il servizio e il nome del file di individuazione per il servizio.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. Per una descrizione completa dei diversi elementi di URL, vedere l'accesso all'API SOAP.For a complete description of the different URL elements, see Accessing the SOAP API.

    Una descrizione delle proprietà e dei metodi forniti dal servizio Web viene visualizzata nel riquadro del visualizzatore a sinistra.A description of the methods and properties provided by the Web service appears in the Browser pane on the left.

    Nota

    Per ulteriori informazioni sugli elementi associati al servizio Web ReportServer, vedere metodi del servizio Web ReportServer.For more information about the items associated with the Report Server Web service, see Report Server Web Service Methods.

  4. Verificare che il progetto possa utilizzare il servizio Web ReportServer, nonché di disporre delle autorizzazioni appropriate per l'accesso al server di report.Verify that your project can use the Report Server Web service, and that you have appropriate permission to access the report server.

  5. Nel nome riferimento Web immettere un nome che verrà utilizzato nel codice per accedere a livello di programmazione il servizio Web ReportServer.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. Selezionare il Aggiungi riferimento pulsante per creare un riferimento nell'applicazione per il servizio Web.Select the Add Reference button to create a reference in your application to the Web service.

    Il nuovo riferimento verrà visualizzato Esplora sotto il nodo Riferimenti Web per il progetto attivo, il nome specificato nella nome riferimento 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. In Esplora, espandere la cartella riferimenti Web per osservare lo spazio dei nomi per le classi di riferimento Web disponibili per gli elementi del progetto.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.

    Dopo aver aggiunto un riferimento Web al progetto, i file associati vengono visualizzati in una cartella all'interno della cartella riferimenti Web di Esplora.After adding a Web reference to your project, the associated files are displayed in a folder within the Web References folder of Solution Explorer.

    Dopo avere aggiunto il riferimento Web, utilizzare la sintassi seguente per creare un'istanza della 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  

È inoltre possibile aggiungere un utilizzando (importazione in Visual BasicVisual Basic) direttiva per il riferimento al servizio Web ReportServer.You can also add a using (Import in Visual BasicVisual Basic) directive to the Report Server Web service reference. Quando si utilizza questa direttiva, non è necessario specificare il nome completo dei tipi nello spazio dei nomi.If you use this directive, you do not need to fully qualify the types in the namespace. A tale scopo, aggiungere al file il codice seguente:To do this, add the following code to your file:

Import myNamespace.myReferenceName  
using myNamespace.myReferenceName;  

Vedere ancheSee Also

Servizio Web ReportServer Report Server Web Service
Creazione di applicazioni mediante il servizio Web e .NET Framework Building Applications Using the Web Service and the .NET Framework
Riferimento tecnico ( SSRS )Technical Reference (SSRS)