Share via


Lektion 3: Zugreifen auf den Webdienst

Nachdem Sie dem Projekt einen Verweis auf den Berichtsserver-Webdienst hinzugefügt haben, besteht der nächste Schritt darin, eine Instanz der Proxyklasse des Webdienstes zu erstellen. Auf die Methoden des Webdienstes kann durch Aufrufen der Methoden in der Proxyklasse zugegriffen werden. Wenn diese Methoden von Ihrer Anwendung aufgerufen werden, behandelt der von Visual Studio generierte Proxyklassencode die Kommunikation zwischen Ihrer Anwendung und dem Webdienst.

Zuerst erstellen Sie ReportingService2005 - eine Instanz der Proxyklasse des Webdienstes. Dann rufen Sie die GetProperties-Methode des Webdienstes mithilfe der Proxyklasse auf. Sie verwenden diesen Aufruf zum Abrufen des Namens und der Beschreibung eines der Beispielsberichte, Company Sales.

ms170088.note(de-de,SQL.90).gifHinweis:
Um auf den Webdienst zuzugreifen, wenn dieser unter SQL Server Express with Advanced Services ausgeführt wird, müssen Sie "$SQLExpress" an den "ReportServer"-Pfad anfügen. Beispiel: http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx"

So greifen Sie auf den Webdienst zu

  1. Zunächst müssen Sie der Datei Program.cs (Module1.vb in Visual Basic) den Namespace hinzufügen, indem Sie der Codedatei eine using-Direktive (Import in Visual Basic) hinzufügen. Wenn Sie diese Direktive verwenden, müssen die Typen im Namespace nicht vollqualifiziert sein.

  2. Fügen Sie dazu den folgenden Code am Anfang der Codedatei ein:

    Imports System
    Imports GetPropertiesSample.ReportService2005
    
    using System;
    using GetPropertiesSample.ReportService2005;
    
  3. Nachdem Sie die Namespacedirektive in die Codedatei eingegeben haben, geben Sie den folgenden Code in die Main-Methode Ihrer Konsolenanwendung ein. Stellen Sie sicher, dass Sie beim Festlegen der Url-Eigenschaft der Webdienstinstanz den Namen Ihres Servers ändern:

    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);
       }
    }
    
  4. Speichern Sie die Projektmappe.

Der Beispielcode in dieser exemplarischen Vorgehensweise verwendet die GetProperties-Methode des Webdienstes, um Eigenschaften des Beispielberichts Company Sales abzurufen. Die GetProperties-Methode hat zwei Argumente: den Namen des Berichts, für den Sie Eigenschaftsinformationen abrufen möchten, und ein Array von Property[]-Objekten, die die Namen von Eigenschaften enthalten, deren Werte Sie abrufen möchten. Die Methode gibt auch ein Array von Property[]-Objekten zurück, die die Namen und Werte der Eigenschaften enthalten, die im Eigenschaftenargument angegeben sind.

ms170088.note(de-de,SQL.90).gifHinweis:
Wenn Sie ein leeres Property[]-Array für das Eigenschaftenargument angeben, werden alle verfügbaren Eigenschaften zurückgegeben.

Im vorherigen Beispiel verwendet der Code die GetProperties-Methode, um den Namen und die Beschreibung des Beispielberichts Company Sales zurückzugeben. Im Code wird dann eine foreach-Schleife verwendet, um die Eigenschaften und Werte auf die Konsole zu schreiben.

Weitere Informationen zum Erstellen und Verwenden einer Proxyklasse für den Berichtsserver-Webdienst finden Sie unter Creating the Web Service Proxy.

Siehe auch

Aufgaben

Lektion 4: Ausführen der Anwendung (VB/VC#)

Konzepte

Lernprogramm: Zugreifen auf den Berichtsserver-Webdienst mithilfe von Visual Basic oder Visual C#

Hilfe und Informationen

Informationsquellen für SQL Server 2005