Condividi tramite


Lezione 3: Accesso al servizio Web

Dopo avere aggiunto al progetto un riferimento al servizio Web ReportServer, il passaggio successivo consiste nel creare un'istanza della classe proxy del servizio Web. Per accedere ai metodi del servizio Web, è quindi possibile eseguire una chiamata dalla classe proxy. Quando l'applicazione chiama questi metodi, il codice della classe proxy generato da Visual Studio gestisce le comunicazioni tra l'applicazione e il servizio Web.

Verrà innanzitutto creata un'istanza della classe proxy del servizio Web, ovvero ReportingService2010, quindi verrà utilizzata la classe proxy per chiamare il metodo GetProperties del servizio Web. La chiamata del metodo verrà utilizzata per recuperare il nome e la descrizione di uno dei report di esempio, ovvero Company Sales.

Nota

Quando si accede a un servizio Web in esecuzione in SQL Server Express con Servizi avanzati, è necessario aggiungere "$SQLExpress" al percorso "ReportServer". Ad esempio:

http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"

Per accedere al servizio Web

  1. È prima necessario aggiungere lo spazio dei nomi al file Program.cs (Module1.vb in Visual Basic) aggiungendo una using direttiva (Imports in Visual Basic) al file di codice. Quando si utilizza questa direttiva, non è necessario specificare il nome completo dei tipi nello spazio dei nomi.

  2. A tale scopo, aggiungere il codice seguente all'inizio del file di codice:

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. Dopo avere immesso la direttiva dello spazio dei nomi nel file del codice, immettere il codice seguente nel metodo Main dell'applicazione console. Assicurarsi di modificare il nome del server quando si imposta la proprietà Url dell'istanza del servizio Web:

    Sub Main()  
       Dim rs As New ReportingService2010  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx"  
    
       Dim name As New [Property]  
       name.Name = "Name"  
    
       Dim description As New [Property]  
       description.Name = "Description"  
    
       Dim properties(1) As [Property]  
       properties(0) = name  
       properties(1) = description  
    
       Try  
          Dim returnProperties As [Property]() = rs.GetProperties( _  
             "/AdventureWorks 2012 Sample Reports/Company Sales 2012", properties)  
    
          Dim p As [Property]  
          For Each p In returnProperties  
              Console.WriteLine((p.Name + ": " + p.Value))  
          Next p  
    
       Catch e As Exception  
          Console.WriteLine(e.Message)  
       End Try  
    End Sub  
    
    static void Main(string[] args)  
    {  
       ReportingService2010 rs = new ReportingService2010();  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx";  
    
       Property name = new Property();  
       name.Name = "Name";  
    
       Property description = new Property();  
       description.Name = "Description";  
    
       Property[] properties = new Property[2];  
       properties[0] = name;  
       properties[1] = description;  
    
       try  
       {  
          Property[] returnProperties = rs.GetProperties(  
          "/AdventureWorks 2012 Sample Reports/Company Sales 2012",properties);  
    
          foreach (Property p in returnProperties)  
          {  
             Console.WriteLine(p.Name + ": " + p.Value);  
          }  
       }  
    
       catch (Exception e)  
       {  
          Console.WriteLine(e.Message);  
       }  
    }  
    
  4. Salvare la soluzione.

Nel codice di esempio dell'esercitazione viene utilizzato il metodo GetProperties del servizio Web per recuperare le proprietà del report di esempio Company Sales 2012. Il GetProperties metodo accetta due argomenti: il nome del report per cui si desidera recuperare le informazioni sulle proprietà e una matrice di oggetti Property[] che contiene i nomi delle proprietà i cui valori si desidera recuperare. Il metodo restituisce anche una matrice di oggetti Property[] che contiene i nomi e i valori delle proprietà specificate nell'argomento delle proprietà.

Nota

Se si specifica una matrice Property[] vuota per l'argomento delle proprietà, vengono restituite tutte le proprietà disponibili.

Nel codice dell'esempio precedente viene utilizzato il metodo GetProperties per restituire il nome e la descrizione del report di esempio Company Sales 2012, quindi viene utilizzato un ciclo foreach per scrivere le proprietà e i valori nella console.

Per ulteriori informazioni sulla creazione e l'utilizzo di una classe proxy per il servizio Web ReportServer, vedere Creating the Web Service Proxy.

Vedere anche

Lezione 4: Esecuzione dell'applicazione (VB-VC#)
Accesso al servizio Web ReportServer con Visual Basic o Visual C# (esercitazione SSRS)