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 ReportingService2005, 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] Per accedere al servizio Web in caso di esecuzione con SQL Server Express with Advanced Services, è necessario accodare "$SQLExpress" al percorso "ReportServer" come illustrato di seguito:
http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx"
Per accedere al servizio Web
Aggiungere innanzitutto lo spazio dei nomi al file Program.cs (Module1.vb in Visual Basic) tramite l'aggiunta di una direttiva using (Import 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.ReportService2005
using System; using GetPropertiesSample.ReportService2005;
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 ReportingService2005 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://<Server Name>/reportserver/reportservice2005.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 Sample Reports/Company Sales", 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) { ReportingService2005 rs = new ReportingService2005(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://<Server Name>/reportserver/reportservice2005.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 Sample Reports/Company Sales",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. Il metodo GetProperties accetta due argomenti, ovvero il nome del report per il quale si desidera recuperare informazioni sulle proprietà e una matrice di oggetti Property[] contenente i nomi delle proprietà di cui si desidera recuperare i valori. Il metodo restituisce inoltre una matrice di oggetti Property[] contenente i nomi e i valori delle proprietà specificate nell'argomento Properties.
[!NOTA] Se per l'argomento Properties si imposta una matrice Property[] vuota, verranno 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, 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
Attività
Lezione 4: Esecuzione dell'applicazione (VB/VC#)
Concetti
Esercitazione: Accesso al servizio Web ReportServer con Visual Basic o Visual C#