Teilen ü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 dem Microsoft .NET Framework eine Proxyklasse zu Ihrem Entwicklungsprojekt hinzuzufügen: über das WSDL-Tool im .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 Methode, einen Clientproxy in Sprachen zu erstellen, die Webdienste unterstützen (derzeit C# und Microsoft Visual Basic), ist die Verwendung des WSDL-Tools.

Hinzufügen einer Proxyklasse zu Ihrem Projekt mithilfe von „Wsdl.exe“

  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" https://<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.

    Hinweis

    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.

Hinzufügen eines Webverweises zu einem Projekt

  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:

    https://<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 Ermittlungsdatei für den Dienst. Eine vollständige Beschreibung der verschiedenen URL-Elemente finden Sie unter Accessing the SOAP API (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.

    Hinweis

    Weitere Informationen zu den zum Berichtsserver-Webdienst gehörigen Elementen finden Sie unter Report Server Web Service Methods (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. Klicken Sie auf die Schaltfläche Verweis hinzufügen, 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 = "https://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();  
rs.Url = "https://<Server Name>/reportserver/reportexecution2005.asmx?wsdl";  
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  

Sie können dem Berichtsserver-Webdienstverweis auch eine using-Anweisung (in Visual Basic eine Import-Anweisung) 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;