vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v2.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB.NET17.09.07
Aufruf eines Webservices in einer Windows-Anwendung (VB.NET)

Dieser Artikel beschreibt, wie man innerhalb einer Windows-Anwendung auf einen bestehenden Webservice zugreift.

Autor:   Carsten StuplichBewertung:     [ Jetzt bewerten ]Views:  21.407 
ohne HomepageSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10kein Beispielprojekt 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Dieser Artikel soll nicht beschreiben wie Sie einen Webservice unter .NET programmieren, sondern wie man auf einen bestehenden Webservice zugreift (für die Erstellung eines eigenen Webservices unter .NET finden Sie im Internet sehr viele Beiträge. Suchen Sie einfach nach "Webservice asp.net").

    Beispiel-Webservice
    Um Ihnen zu zeigen wie man in einer Windows-Anwendung (VB.NET) auf einen Webservice zugreift, hab ich mir in Visual Studio 2005 einen Webservice über die Vorlage "ASP.NET-Webdienstanwendung" erstellt und nicht weiter angepasst, da diese Vorlage bereits eine Methode mit dem Namen "HelloWorld" bereitstellt und uns zum Austesten reicht.

    Der Code der Serviceklasse Service1.asmx sieht wie folgt aus:

    Imports System.Web.Services
    Imports System.Web.Services.Protocols
    Imports System.ComponentModel
     
    Imports System.Data.OleDb
     
    <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
    <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
    <ToolboxItem(False)> _
    Public Class Service1
      Inherits System.Web.Services.WebService
     
      <WebMethod()> _
      Public Function HelloWorld() As String
        Return "Hello World"
      End Function
     
    End Class

    1. Einbinden eines Webservices unter VB.NET
    Damit Ihre Anwendung auf einen Webservice zugreifen kann, müssen sie als erstes einen s.g. "Webverweis" hinzufügen. Hierfür rufen Sie im Menü "Projekt > Webverweis hinzufügen…" auf. Daraufhin öffnet sich ein Dialog, indem Sie die URL des Webservices (z.B. <http://servername/sasws/Service1.asmx>) bekannt geben und einen Namen für den Webservice (im Beispiel "HalloWeltWebservice") vergeben.

    Nachdem Sie auf den Button "Vereis hinzufügen" geklickt haben, steht Ihnen der Webservice in Ihrer Anwendung zur Verfügung und kann wie eine "normale" Klasse verwendet werden.

    Webverweis hinzufügen

    2. Beispiel-Code für Synchronen Aufruf eines Webservices
    Folgender Code ist nötig um die Methode "HelloWorld" des o.g. Webservices synchron auszuführen.

    Private Sub btnSynchron_Click(ByVal sender As Object, _
      ByVal e As System.EventArgs) Handles btnSynchron.Click
     
      ' Objekt für Webservice "TestWebservice" erstellen
      Dim oTestWebservice As HalloWeltWebservice.Service1 = _
        New HalloWeltWebservice.Service1
     
      ' Standard-Authentifizierung für Webservice festlegen
      ' (ist nötig wenn im Webserver NT-Authentifizierung anstatt Anonym aktiviert ist)
      ' (Andernfalls tritt ein Fehler auf weil man nicht für den Zugriff berechtigt ist.
      oTestWebservice.Credentials = System.Net.CredentialCache.DefaultCredentials
     
      ' Synchroner Aurfurf der Methode "HelloWorld" in Webservice "TestWebservice" 
      ' aufrufen und Rückgabewert per Messagebox ausgeben
      MsgBox(oTestWebservice.HelloWorld)
    End Sub

    3. Beispiel-Code für Asynchronen Aufruf eines Webservices
    Folgender Code ist nötig um die Methode "HelloWorld" des o.g. Webservices asynchron auszuführen.

    Private Sub btnASynchron_Click(ByVal sender As Object, _
      ByVal e As System.EventArgs) Handles btnASynchron.Click
     
      ' Objekt für Webservice "TestWebservice" erstellen
      Dim oTestWebservice As HalloWeltWebservice.Service1 _
        = New HalloWeltWebservice.Service1
     
      ' Standard-Authentifizierung für Webservice festlegen
      ' (ist nötig wenn im Webserver NT-Authentifizierung anstatt Anonym aktiviert ist)
      ' (Andernfalls tritt ein Fehler auf weil man nicht für den Zugriff berechtigt ist.
      ' Kann auskommentiert werden wenn nicht benötigt)
      oTestWebservice.Credentials = System.Net.CredentialCache.DefaultCredentials
     
      ' Asynchroner Aurfurf der Methode "HelloWorld" in Webservice "TestWebservice" 
      ' aufrufen und Rückgabewert per Messagebox ausgeben
      oTestWebservice.HelloWorldAsync()
     
      AddHandler oTestWebservice.HelloWorldCompleted, _
        AddressOf HalloWeltWebservice_HelloWorldCompleted
    End Sub
    ''' <summary>
    ''' Sub die ausgeführt wird wenn Methode "HelloWorld" in Webservice "TestWebservice" 
    ''' durchgelaufen ist (bei asynchronem Aufruf der Methode "HelloWorld")
    ''' </summary>
    Private Sub HalloWeltWebservice_HelloWorldCompleted(ByVal sender As Object, _
      ByVal e As HalloWeltWebservice.HelloWorldCompletedEventArgs)
     
      Dim sResult As String = e.Result
      MsgBox(sResult)
    End Sub

    Anmerkung:
    Über AddHandler beim Asynchronen-Aufruf wird bekanntgegeben, welche Sub ausgeführt werden soll, wenn die Methode "HelloWord" durchgelaufen ist.
     

    Dieser Tipp wurde bereits 21.407 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2015 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel