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
È 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.A tale scopo, aggiungere il codice seguente all'inizio del file di codice:
Imports System Imports GetPropertiesSample.ReportService2010
using System; using GetPropertiesSample.ReportService2010;
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); } }
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)