How to build a Webservice

Hallo zusammen,

Für meine Website habe ich schon im 2009 einen Webservice gebaut. Bisher habe ich aber noch nie darüber einen Blog Artikel geschrieben. Hier nun eine kleine Anleitung.

Webservice erstellen

Im Visual Web Developer Express erstellt man eine neue Datei und wählt "Web Service" aus den Templates aus.

Das Template hat schon die richtige Struktur. Es müssen lediglich ein die Namen der Klasse, der Namespace und die Funktion angepasst werden.

 <%@ WebService Language="VB" Class="WebserviceExample" %>

Imports System
Imports System.Web
Imports System.Web.Services
Imports System.Xml.Serialization

<WebService(Namespace:="WebserviceExample")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class WebserviceExample
    Inherits System.Web.Services.WebService

    <WebMethod()> Public Function Addition(ByVal Summand1 As Integer, ByVal Summand2 As Integer) As Integer
        Return Summand1 + Summand2
    End Function

End Class

Nach dem speichern der Datei als http://www.icewolf.ch/WebserviceExample.asmx rufe ich die Seite mit dem IE auf.

Hängt man den Parameter "?WSDL" an die URL an, so kann man die Service Description in XML sehen. WSDL steht für Web Services Description Language

http://www.icewolf.ch/WebserviceExample.asmx?WSDL

Man sieht, dass die Funktion "Addition" mit zwei Integer Variablen existiert und der Rückgabewert ebenfalls vom Typ Integer ist.

Webservice Benutzen

Nun erstelle ich eine VB Anwendung und erstelle ich eine Service Referenz auf den Webservice.

Nach eingabe der URL zum Webservice klickt man auf "Go". Anschliessend werden die verfügbaren Funktionen des Webservices angezeigt.

Nun benutze ich den Webservice aus meiner VB Applikation

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myresult As Long
        Dim ws As New ServiceReference1.WebserviceExampleSoapClient

        Try
            myresult = ws.Addition(10, 15)
            MsgBox("Result: " & myresult)
        Catch ex As Exception
            MsgBox("Exception: " & ex.Message)
        End Try

    End Sub
End Class

Grüsse
Andres Bohren