Exemplarische Vorgehensweise: Zugreifen auf einen Webdienst mit Visual Basic oder Visual C#

In der folgenden exemplarischen Vorgehensweise wird der Zugriff auf einen Webdienst aus einer mit Visual Basic oder Visual C# erstellten Anwendung beschrieben.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie die folgenden Schritte aus:

  • Erstellen einer Clientanwendung unter Verwendung der Projektvorlage für ASP.NET-Webanwendungen.

  • Hinzufügen eines Webverweises für einen Webdienst.

  • Schreiben von Code für den Zugriff auf den Webdienst.

  • Ausführen der Webanwendung im Debugmodus.

  • Bereitstellen der Webanwendung.

Folgendes ist erforderlich, um die exemplarische Vorgehensweise abzuschließen:

  • Da bei dieser exemplarischen Vorgehensweise der Zugriff auf einen Webdienst durch eine Webanwendung erfolgt, benötigen Sie einen Computer, der den Anforderungen für das Erstellen eines Webprojekts entspricht. Sie benötigen außerdem die erforderlichen Berechtigungen auf dem Computer, auf dem der Webserver installiert ist, um Webdienstprojekte erstellen zu können.

  • Ein Webdienst, der mithilfe der folgenden exemplarischen Vorgehensweise erstellt wurde:

Erstellen eines Webdienstclient-Projekts

In dieser exemplarischen Vorgehensweise erstellen Sie eine einfache Webanwendung, die auf den Webdienst TempConvert1 zugreift. Dieser Name wurde dem in Exemplarische Vorgehensweise: Erstellen eines Webdiensts mit Visual Basic oder Visual C# erstellten Webdienst zugewiesen.

Hinweis

Falls Sie den Namen des Webdiensts für die Temperaturumrechnung beim Erstellen geändert haben, müssen Sie die Bezeichnung TempConvert1 in dieser exemplarischen Vorgehensweise jeweils durch den von Ihnen gewählten Namen ersetzen.

So erstellen Sie eine ASP.NET-Webanwendung

  1. Wählen Sie im Menü Datei die Option Neue Website aus.

  2. Wählen Sie im Dialogfeld Neue Website das Symbol ASP.NET-Website aus.

  3. Geben Sie die Adresse des Webservers ein, auf dem die Webanwendung entwickelt werden soll, und geben Sie TempConvertClient1 als Verzeichnisnamen an (Beispiel: http://MyServer/TempConvertClient1). Als Standardeinstellung wird für das Projekt der lokale Computer https://localhost verwendet.

    Hinweis

    Bei einigen Projekttypen steht das Textfeld Name nicht zur Verfügung, da sich der Projektname direkt aus dem angegebenen Speicherort ergibt. Beispielsweise leiten sich die Namen von Webanwendungen und Webdiensten, die sich auf einem Webserver befinden, vom Namen des auf dem Server angegebenen virtuellen Verzeichnisses ab.

    Hinweis

    Sie entwickeln Webanwendungen auf einem Entwicklungsserver. Der Standardentwicklungsserver ist der lokale Computer. Im Allgemeinen entwickeln und erstellen Sie das Projekt auf einem Entwicklungsserver und geben es anschließend an einen anderen Server (den Bereitstellungsserver) weiter. Hier wird die Webanwendung als Bereitstellungsprojekt gespeichert. Wenn Sie jedoch direkt auf dem Server entwickeln, der als Host für die Webanwendung fungiert, sind der Entwicklungs- und der Bereitstellungsserver identisch.

  4. Klicken Sie auf OK, um das Projekt zu erstellen.

  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Default.aspx, und wählen Sie Designer anzeigen aus, um den Designer zu öffnen.

  6. Ziehen Sie aus dem Bereich Web Forms der Toolbox ein TextBox-Steuerelement, ein Label-Steuerelement und ein Button-Steuerelement auf die Entwurfsoberfläche von Default.aspx, und ordnen Sie diese Elemente wie gewünscht an.

  7. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Schaltfläche Button1, und klicken Sie dann im Kontextmenü auf Eigenschaften. Legen Sie im Eigenschaftenfenster die Text-Eigenschaft auf Convert fest.

  8. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Beschriftung Label1, und klicken Sie dann im Kontextmenü auf Eigenschaften. Löschen Sie im Eigenschaftenfenster den Inhalt der Text-Eigenschaft, damit eine leere Beschriftung angezeigt wird.

Hinzufügen eines Webverweises

Beim Ermitteln eines Webdiensts sucht ein Client einen Webdienst und ruft dessen Dienstbeschreibung ab. In Visual Studio beinhaltet dieser Prozess das Abfragen einer Website mithilfe eines vordefinierten Algorithmus. Ziel dieses Vorgangs ist das Ermitteln der Dienstbeschreibung, die in Form eines in WSDL (Web Service Description Language) erstellten XML-Dokuments vorliegt. Weitere Informationen hierzu finden Sie unter XML-Webdienstsuche.

In der Dienstbeschreibung werden die verfügbaren Dienste und die Interaktion mit diesen Diensten beschrieben. Ohne eine Dienstbeschreibung ist die programmgesteuerte Interaktion mit einem Webdienst nicht möglich. Weitere Informationen hierzu finden Sie unter XML-Webdienstbeschreibung.

Die Anwendung muss in der Lage sein, mit dem Webdienst zu kommunizieren und ihn zur Laufzeit zu finden. Indem Sie dem Projekt einen Webverweis für den Webdienst hinzufügen, wird eine Proxyklasse generiert, die über eine Schnittstelle zum Webdienst verfügt und eine lokale Repräsentation des Webdiensts bereitstellt. Weitere Informationen finden Sie unter Webverweise in Visual Studio und unter Gewusst wie: Generieren eines Webdienstproxys.

So fügen Sie einen Webverweis hinzu

  1. Wählen Sie im Menü Website die Option Webverweis hinzufügen aus.

  2. Geben Sie im Dialogfeld Webverweis hinzufügen im Feld URL die URL zu der Beschreibung des Webdiensts ein, auf die Sie zugreifen möchten, z. B. https://localhost/TempConvert1/Service1.asmx. Klicken Sie dann auf die Schaltfläche Gehe zu, um die Informationen zum Webdienst abzurufen.

    – oder –

    Klicken Sie im Browserbereich auf den Link Webdienste auf dem lokalen Computer, wenn sich der Webdienst auf dem lokalen Computer befindet. Klicken Sie anschließend in der angezeigten Liste auf den Link für den Webdienst TempConvert1, um die Informationen zum Webdienst abzurufen.

  3. Ändern Sie im Feld Webverweisname den Webverweis in ConvertSvc, d. h., den Namespace, der für diesen Webverweis verwendet wird.

  4. Klicken Sie auf Verweis hinzufügen, um einen Webverweis für den ausgewählten Webdienst hinzuzufügen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen und Entfernen von Webverweisen.

    Durch Visual Studio wird die Dienstbeschreibung heruntergeladen und eine Proxyklasse generiert, die als Schnittstelle zwischen der Anwendung und dem Webdienst fungiert.

Zugreifen auf den Webdienst

Nachdem Sie dem Projekt einen Verweis auf den Webdienst hinzugefügt haben, erstellen Sie im nächsten Schritt eine Instanz der Proxyklasse des Webdiensts. Der anschließende Zugriff auf die Methoden des Webdiensts erfolgt auf die gleiche Weise wie der Zugriff auf die Methoden anderer Objekte, nämlich indem die Methoden in der Proxyklasse aufgerufen werden. Wenn diese Methoden von der Anwendung aufgerufen werden, erfolgt die Kommunikation zwischen der Anwendung und dem Webdienst über den von Visual Studio erstellten Code der Proxyklasse.

Zuerst erstellen Sie eine Instanz der Proxyklasse des Webdiensts. Anschließend übernehmen Sie einen in TextBox1 bereitgestellten Wert und rufen unter Verwendung der Proxyklasse die ConvertTemperature-Methode des Webdiensts auf. Den vom Webdienst zurückgegebenen Wert zeigen Sie dann in Label1 an.

So greifen Sie auf den Webdienst zu

  1. Doppelklicken Sie in WebForm1.aspx auf die Schaltfläche Convert, um eine Ereignisbehandlungsmethode für diese Schaltfläche zu erstellen und die CodeBehind-Datei anzuzeigen.

  2. Geben Sie folgenden Code ein:

    ' Visual Basic
    Protected Sub Button1_Click(ByVal sender As Object, _
      ByVal e as EventArgs) Handles Button1.Click
        Dim ws As New ConvertSvc.Service
        Dim dFahrenheit As Double
        Dim dCelsius As Double
        Try
            dFahrenheit = Convert.ToDouble(TextBox1.Text)
            dCelsius = ws.ConvertTemperature(dFahrenheit)
            Label1.Text = dCelsius.ToString()
        Catch
            Label1.Text = "Conversion failed."
        End Try
    End Sub
    
    // C#
    protected void Button1_Click (System.Object sender, System.EventArgs e)
    {
       try
       {
          ConvertSvc.Service1 ws = new ConvertSvc.Service1();
          double dFahrenheit = Convert.ToDouble(TextBox1.Text);
          double dCelsius = ws.ConvertTemperature(dFahrenheit);
          Label1.Text = dCelsius.ToString();
       }
       catch
       {
          Label1.Text = "Conversion failed.";
       }
    }
    

    Hinweis

    Der Name des Webdiensts, der beim Hinzufügen des Webverweises generiert wurde, unterscheidet sich u. U. von dem oben angezeigten Namen Service1.

  3. Wählen Sie im Projektmappen-Explorer Default.aspx aus.

  4. Klicken Sie im Menü Website auf Als Startseite festlegen.

  5. Speichern Sie die Projektmappe.

Weitere Informationen hierzu finden Sie unter Gewusst wie: Zugreifen auf einen Webdienst in verwaltetem Code.

Debuggen des Webdienstclients

Visual Studio bietet mehrere Methoden zum Erstellen und Ausführen einer Webanwendung in der IDE. Dazu gehören:

  • Starten (mit Debuggen)

  • Starten ohne Debuggen

  • In Browser anzeigen

Als Visual Studio-Projekt verfügt diese Webanwendung über unterschiedliche Konfigurationen für Release- und Debugversionen. Da Sie dieses Projekt mit der Projektvorlage für ASP.NET-Webanwendungen erstellt haben, erstellt Visual Studio diese Konfigurationen automatisch und legt die entsprechenden Standardoptionen und andere Einstellungen fest. Weitere Informationen hierzu finden Sie unter Gewusst wie: Festlegen von Debug- und Releasekonfigurationen.

In dieser exemplarischen Vorgehensweise setzen Sie im Button1_Click-Ereignis einen Haltepunkt und verwenden das Verfahren Starten. Weitere Informationen hierzu finden Sie unter Gewusst wie: Debuggen von Webdiensten in verwaltetem Code.

Prüfen Sie vor dem Debuggen die Debugeinstellungen. Weitere Informationen hierzu finden Sie unter Vorbereitung zum Debuggen: ASP.NET-Webanwendungen.

So verwenden Sie einen Haltepunkt und starten die Webanwendung mit Debuggen

  1. Klicken Sie im Menü Debuggen auf Neuer Haltepunkt, und klicken Sie auf Halten bei Funktion.

    Geben Sie im Feld Function den Text Button1_Click ein, und klicken Sie auf OK, um auf dem Button1_Click-Ereignishandler einen Haltepunkt zu platzieren. Weitere Informationen finden Sie unter Übersicht: Haltepunkte.

  2. Klicken Sie im Menü Debuggen auf Starten, und klicken Sie dann im Fenster Debuggen nicht aktiviert auf OK, um mit dem Debuggen zu beginnen.

    Dieser Befehl weist Visual Studio an, die Webanwendung im Debugger auszuführen. Visual Studio erstellt das Projekt und gibt dieses an den angegebenen Entwicklungsserver weiter. Nach Abschluss dieser Aktion wird der Standardbrowser gestartet und die ASPX-Datei auf dem Bereitstellungsserver gesucht.

  3. Wenn die Seite im Browser angezeigt wird, geben Sie im Textfeld die Zahl 212 ein. Klicken Sie dann auf die Schaltfläche Convert.

    Wenn die Verarbeitung den Button1_Click-Ereignishandler erreicht, wird sie angehalten. Der Debugger von Visual Studio markiert die Zeile mit dem Haltepunkt, und Sie können während der Unterbrechung verschiedene Aufgaben ausführen. Weitere Informationen finden Sie unter Debuggerwegweiser und unter Anzeigen von Daten im Debugger.

  4. Klicken Sie im Menü Debuggen auf Weiter, um die Verarbeitung fortzusetzen.

  5. Der Webdienst antwortet durch Rückgabe des umgerechneten Werts, und die Anwendung trägt im Textfeld Label1 den Wert 100 ein.

    Um die Webanwendung zu beenden und zum Code-Editor zurückzukehren, klicken Sie im Menü Debuggen auf Debuggen beenden.

  6. Klicken Sie im Menü Debuggen auf Alle Haltepunkte löschen.

Bereitstellen des Clients

Um die Webanwendung für andere Benutzer verfügbar zu machen, müssen Sie sie auf einem Webserver bereitstellen, auf den die zu unterstützenden Clients zugreifen können. Zum Bereitstellen der Webanwendung auf einem Server, der nicht der Bereitstellungsserver ist, können Sie ein Websetup-Projekt hinzufügen oder die erforderlichen Dateien auf den Zielserver kopieren. In dieser exemplarischen Vorgehensweise können Sie die Art der Bereitstellung der Webanwendung selbst auswählen. Weitere Informationen hierzu finden Sie unter Bereitstellen von Anwendungen und Komponenten.

So geben Sie die Webanwendung mit einem Websetup-Projekt weiter

  1. Zeigen Sie im Menü Datei auf Hinzufügen, und klicken Sie dann auf New Projekt.

  2. Wählen Sie den Knoten Andere und dann den Knoten Setup- und Bereitstellungsprojekte aus, und klicken Sie dann auf Websetup-Projekt.

  3. Geben Sie im Feld Name die Bezeichnung TempConvertClient1WebSetup ein, und klicken Sie dann auf OK.

    Hinweis

    Der Name des Bereitstellungsprojekts wird vom Installer standardmäßig beim Erstellen des virtuellen Verzeichnisses auf dem Bereitstellungsserver verwendet.

  4. Wählen Sie im linken Bereich des Dateisystem-Editors den Webanwendungsordner aus. Weitere Informationen hierzu finden Sie unter Dateisystem-Editor.

  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf TempConvertClient1WebSetup, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Projektausgabe.

  6. Wählen Sie im Dialogfeld Projektausgabegruppe hinzufügen die Option Inhaltsdateien aus. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen und Entfernen von Projektausgaben im Dateisystem-Editor.

    • Die Gruppe Inhaltsdateien enthält die restlichen Dateien für die Webanwendung, z. B. WebForm1.aspx und Web.config.
  7. Klicken Sie auf OK.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt TempConvertClient1WebSetup, und klicken Sie im Kontextmenü auf Erstellen.

    Damit erstellen Sie eine Windows Installer-Datei im lokalen Projektverzeichnis. Durch Ausführen dieser Datei installieren Sie die Webanwendung.

So geben Sie die Webanwendung durch Kopieren des Projekts weiter

  1. Wählen Sie im Projektmappen-Explorer das Projekt TempConvertClient1 aus.

  2. Klicken Sie im Menü Projekt auf Website kopieren.

  3. Klicken Sie auf das Symbol neben dem Dropdownfeld Verbindung herstellen mit, um das Dialogfeld Website öffnen zu öffnen. Navigieren Sie zu dem Speicherort, an den Sie das Projekt kopieren möchten.

  4. Wählen Sie im Bereich Quellwebsite die zu kopierenden Dateien aus, und verschieben Sie sie in den Bereich Remotewebsite, indem Sie auf den nach rechts weisenden Pfeil klicken.

  5. Klicken Sie auf Website kopieren, um die Website zu kopieren.

Siehe auch

Weitere Ressourcen

Exemplarische Vorgehensweisen für das Erstellen von und das Zugreifen auf Webdienste

Exemplarische Vorgehensweisen für Visual Studio

Webprogrammierung mit Webdiensten