Freigeben über


Erstellen des Webdienstproxys

Ein Client und ein Webdienst können über SOAP-Nachrichten kommunizieren, die die Eingabe- und Ausgabeparameter als XML-Datei einkapseln. Eine Proxyklasse ordnet XML-Elementen Parameter zu und sendet dann die SOAP-Nachrichten über ein Netzwerk. So sorgt die Proxyklasse dafür, dass Sie nicht auf der SOAP-Ebene mit dem Webdienst kommunizieren müssen. Außerdem können Sie die Webdienstmethoden in jeder Entwicklungsumgebung aufrufen, die SOAP- und Webdienstproxys unterstützt.

Es gibt zwei Möglichkeiten, mit Microsoft .NET Framework eine Proxyklasse zu Ihrem Entwicklungsprojekt hinzuzufügen: über das WSDL-Tool in .NET Framework und durch Hinzufügen eines Webverweises in Microsoft Visual Studio. In den folgenden Abschnitten wird dieser Betreff detaillierter erläutert.

Hinzufügen des Proxys über das WSDL-Tool

Das .NET Framework-SDK enthält das WSDL-Tool (Web Services Description Language, Wsdl.exe), mit dem Sie einen Webdienstproxy für die Verwendung in der .NET Framework-Entwicklungsumgebung generieren können. Die gängigste Art, einen Clientproxy in Sprachen zu erstellen, die Webdienst unterstützen (derzeit C# und Microsoft Visual Basic), ist die Verwendung des WSDL-Tools.

So fügen Sie mit Wsdl.exe eine Proxyklasse zum Projekt hinzu

  1. Verwenden Sie Wsdl.exe über eine Eingabeaufforderung, um eine Proxyklasse zu erstellen, und geben Sie (mindestens) die URL zum Berichtsserver-Webdienst an

    Beispielsweise gibt die folgende Anweisung der Eingabeaufforderung eine URL für den Verwaltungsendpunkt des Berichtsserver-Webdiensts an.

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
    

    Das WSDL-Tool akzeptiert zum Generieren eines Proxys mehrere Eingabeaufforderungsargumente. Das vorhergehende Beispiel gibt die Sprache C# an, außerdem einen vorgeschlagenen Namespace für die Verwendung im Proxy (um Namenskonflikte zu verhindern, wenn Sie mehr als einen Webdienst-Endpunkt verwenden), und generiert eine C#-Datei mit dem Namen ReportingService2010.cs. Wenn im Beispiel Visual Basic angegeben worden wäre, wäre eine Proxydatei mit dem Namen ReportingService2010.vb generiert worden. Diese Datei wird in dem Verzeichnis erstellt, von dem Sie den Befehl ausführen.

  2. Kompilieren Sie die Proxyklasse in eine Assemblydatei (mit der Erweiterung .dll), und verweisen Sie im Projekt darauf, oder fügen Sie die Klasse als Projektelement hinzu.

    HinweisHinweis

    Wenn Sie eine Proxyklasse manuell zum Projekt hinzufügen, müssen Sie einen Verweis zu System.Web.Services.dll hinzufügen. Wenn Sie den Proxy mithilfe eines Webverweises in Visual Studio .NET hinzufügen, wird der Verweis automatisch für Sie erstellt. Weitere Informationen finden Sie später in diesem Kapitel unter "Hinzufügen eines Proxys mit einem Webverweis in Visual Studio".

    Nachdem Sie die Proxyklasse als Element zu Ihrem Projekt hinzugefügt haben, wird die zugehörige Datei im Projektmappen-Explorer angezeigt.

  3. Um den Dienst programmgesteuert aufzurufen, erstellen Sie eine Instanz der Proxyklasse.

    Im folgenden Codebeispiel wird die Syntax zum Erstellen einer Instanz der ReportingService2010-Proxyklasse in einem Projekt gezeigt:

Dim service As New ReportingService2010()
ReportingService2010 service = new ReportingService2010();

Weitere Informationen zum Tool Wsdl.exe, einschließlich der kompletten Syntax, finden Sie unter "Web Services Description Language Tool" in der .NET Framework SDK-Dokumentation. Eine vollständige Erläuterung zu Webdienstproxys finden Sie unter "Erstellen eines XML-Webdienstproxys" in der .NET Framework SDK-Dokumentation.

Hinzufügen eines Proxys mit einem Webverweis in Visual Studio

Über einen Webverweis kann ein Projekt einen oder mehrere Webdienste verwenden. Visual Studio bietet Benutzern die Möglichkeit, Webdienstverweise mit einigen einfachen Schritten zu Projekten hinzuzufügen.

So fügen Sie einem Projekt einen Webverweis hinzu

  1. Wählen Sie im Projektmappen-Explorer das Projekt aus, das den Webdienst beansprucht.

  2. Klicken Sie im Menü Projekt auf Webverweis hinzufügen.

    Das Dialogfeld Webverweis hinzufügen wird geöffnet.

  3. Geben Sie im Feld URL den vollständigen Pfad zum Berichtsserver-Webdienst ein.

    Eine vereinfachte URL für den Berichtsausführungsendpunkt des Berichtsserver-Webdiensts kann folgendermaßen aussehen:

    http://<Server Name>/reportserver/reportexecution2005.asmx
    

    Die URL enthält die Domäne, in der der Berichtsserver-Webdienst bereitgestellt wird, den Namen des Ordners, der den Dienst enthält, und den Namen der Discovery-Datei für den Dienst. Eine vollständige Beschreibung der verschiedenen URL-Elemente finden Sie unter Zugriff auf die SOAP-API.

    Eine Beschreibung der vom Webdienst zur Verfügung gestellten Methoden und Eigenschaften befindet sich im Browserbereich auf der linken Seite.

    HinweisHinweis

    Weitere Informationen zu den zum Berichtsserver-Webdienst gehörigen Elementen finden Sie unter Webdienstmethoden für Berichtsserver.

  4. Überprüfen Sie, dass das Projekt den Berichtsserver-Webdienst verwenden kann und dass Sie über die entsprechende Zugriffsberechtigung für den Berichtsserver verfügen.

  5. Geben Sie im Feld Webverweisname einen Namen ein, der im Code für den programmgesteuerten Zugriff auf den Berichtsserver-Webdienst verwendet werden soll.

  6. Wählen Sie die Schaltfläche Verweis hinzufügen aus, um in der Anwendung einen Verweis zum Webdienst zu erstellen.

    Der neue Verweis wird im Projektmappen-Explorer unter dem Knoten für Webverweise für das aktive Projekt mit dem im Feld Webverweisname angegebenen Namen angezeigt.

  7. Im Projektmappen-Explorer öffnen Sie den Webverweisordner, damit Sie den Namespace für die Webverweisklassen angeben können, die für die Elemente im Projekt zur Verfügung stehen.

    Nachdem Sie einen Webverweis zum Projekt hinzugefügt haben, werden die zugehörigen Dateien in einem Ordner im Webverweisordner des Projektmappen-Explorers angezeigt.

Nachdem Sie den Webverweis hinzugefügt haben, erstellen Sie mit folgender Syntax eine Instanz der Proxyklasse:

Dim rs As New myNamespace.myReferenceName.ReportExecutionService()
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials

Sie können dem Berichtsserver-Webdienstverweis auch eine using-Direktive (in Visual Basic eine Import-Direktive) hinzufügen. Wenn Sie diese Direktive verwenden, müssen die Typen im Namespace nicht vollqualifiziert sein. Hierfür fügen Sie dieser Datei den folgenden Code hinzu:

Import myNamespace.myReferenceName
using myNamespace.myReferenceName;