Занятие 3. Доступ к веб-службе

После добавления в проект ссылки на веб-службу сервера отчетов будет создан экземпляр класса-посредника этой веб-службы. Теперь можно получить доступ к методам веб-службы путем вызова методов класса-посредника. Когда приложение вызывает эти методы, код класса-посредника, сформированный средой Visual Studio, обеспечивает соединения между приложением и веб-службой.

Вначале нужно создать экземпляр класса-посредника веб-службы ReportingService2010. Затем с помощью класса-посредника нужно вызвать метод веб-службы GetProperties. Вызов будет использован для получения имени и описания одного из образцов отчетов под названием Company Sales.

ПримечаниеПримечание

Во время доступа к веб-службе, запущенной на сервере SQL Server Express with Advanced Services, к пути «ReportServer» необходимо добавить выражение «$SQLExpress». Например:

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

Получение доступа к веб-службе

  1. В первую очередь требуется добавить пространство имен в файл Program.cs (Module1.vb в Visual Basic) с помощью добавления директивы using (Imports в Visual Basic) в файл кода. Если применить эту директиву, нет необходимости полностью уточнять типы пространства имен.

  2. Чтобы сделать это, добавьте следующий код в начало файла с кодом:

    Imports System
    Imports GetPropertiesSample.ReportService2010
    
    using System;
    using GetPropertiesSample.ReportService2010;
    
  3. После добавления директивы пространства имен в файл кода необходимо ввести следующий код в описание главного метода приложения командной строки. При настройке свойства Url экземпляра веб-службы обязательно измените имя сервера:

    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. Сохраните решение.

В образце кода из этого пошагового руководства используется метод веб-службы GetProperties для получения свойства образца отчета «Продажи компании в 2012 г.». Метод GetProperties имеет два аргумента: имя отчета, для которого необходимо извлечь сведения о свойствах, а также массив объектов Property[], содержащий имена свойств, значения которых необходимо получить. Этот метод возвращает массив объектов Property[], который содержит имена и значения свойств, указанных в аргументе свойств.

ПримечаниеПримечание

Если в качестве аргумента свойств указать пустой массив Property[], будут возвращены все доступные свойства.

В коде предыдущего примера используется метод GetProperties, возвращающий имя и описание образца отчета «Продажи компании в 2012 г.». В этом коде используется цикл foreach, чтобы вывести свойства и значения на консоль.

Дополнительные сведения о создании и использовании класса-посредника для веб-службы сервера отчетов см. в разделе Создание учетной записи-посредника веб-службы.

См. также

Задания

Занятие 3. Доступ к веб-службе

Основные понятия

Доступ к веб-службе сервера отчетов на языке Visual Basic или Visual C# (учебник по службам SSAS)