Compartir a través de


Lección 3: Acceso al servicio web

Después de agregar una referencia para el servicio web del servidor de informes al proyecto, el siguiente paso es crear una instancia de la clase proxy del servicio web. A continuación, puede acceder a los métodos del servicio web llamando a los métodos de la clase proxy. Cuando la aplicación llama a estos métodos, el código de clase de proxy generado por Visual Studio controla las comunicaciones entre la aplicación y el servicio web.

En primer lugar, creará una instancia de la clase proxy del servicio web, ReportingService2010. A continuación, realizará una llamada al método del GetProperties servicio web mediante la clase proxy. Usará la llamada para recuperar el nombre y la descripción de uno de los informes de ejemplo, Company Sales.

Nota:

Al acceder a un servicio web que se ejecuta en SQL Server Express con Advanced Services, debe anexar "$SQLExpress" a la ruta de acceso "ReportServer". Por ejemplo:

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

Para acceder al servicio web

  1. Primero debe agregar el espacio de nombres al archivo Program.cs (Module1.vb en Visual Basic) mediante la adición de una directiva using (Imports en Visual Basic) al archivo de código. Si usa esta directiva, no es necesario calificar completamente los tipos del espacio de nombres.

  2. Para ello, agregue el código siguiente al principio del archivo de código:

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. Una vez que haya escrito la directiva de espacio de nombres en el archivo de código, escriba el código siguiente en el método Main de la aplicación de consola. Asegúrese de cambiar el nombre del servidor al establecer la propiedad Url de la instancia de servicio 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. Guarda la solución.

El código de ejemplo de la guía usa el método GetProperties del servicio web para recuperar las propiedades del informe de ejemplo titulado Company Sales 2012. El GetProperties método toma dos argumentos: el nombre del informe para el que desea recuperar la información de propiedad y una matriz de objetos Property[] que contiene los nombres de las propiedades cuyos valores desea recuperar. El método también devuelve una matriz de objetos Property[] que contiene los nombres y valores de las propiedades especificadas en el argumento properties.

Nota:

Si proporciona una matriz Property[] vacía para el argumento properties, se devuelven todas las propiedades disponibles.

En el ejemplo anterior, el código usa el GetProperties método para devolver el nombre y la descripción del informe de ejemplo, Company Sales 2012. A continuación, el código usa un foreach bucle para escribir las propiedades y los valores en la consola.

Para obtener más información sobre cómo crear y usar una clase de proxy para el servicio web del servidor de informes, vea Creación del proxy de servicio web.

Véase también

Lección 4: Ejecución de la aplicación (VB-VC#)
Acceso al servicio web del servidor de informes mediante Visual Basic o Visual C# (Tutorial de SSRS)