Tutorial: WebService mit ASP.net erstellen
Vorgestern gab es ein Tutorial, wie man einen WebService mit PHP erstellt. Heute werde ich den gleichen WebService in ASP.net erstellen. So das ihr einmal ein wenig vergleichen könnt. Eins kann ich schonmal vorwegsagen: Es ist um einiges leichter.
WebService anlgen
Um den WebService zu schreiben benutze ich Visual Studio 2005. Dort kann man auf Datei->Neu->Website gehen, um die möglichen ASP.net Projekte erstellen. Bei uns handelt es sich um einen ASP.net-Webdienst:
Nun haben wir bereits mehrere Dateien erstellt bekommen:
- Service.vb – beinhaltet den auszuführenden Code (also die Funktion Add)
- Service.asmx – beinhaltet die Math Dateieigenschaften
- Web.Config – beihnaltet die Projekteigenschaften.
Klassen & Dateien umbenennen
Wir wollen unseren Service ja nicht Service nennen, sondern Math. Hierzu müssen wir als erstes die Dateien Service.vb und Service.asmx nach Math.vb und Math.asmx umbenennen.
Nun öffnen wir die Math.vb und ersetzten
Public Class Service
durch
Public Class Math
Nun fehlt noch die Einstellung in der Datei Math.asmx. Hier muss ein Dateiname und Klassenname umbenannt werden:
<%@ WebService Language="vb" CodeBehind="~/App_Code/Math.vb" Class="Math" %>
Die Funktion Add
Wie in unserem PHP Beispiel wollen wir eine Methode namens Add erstellen, welche zwei Zahlen addiert. Zum Anfang steht in der Math.vb eine Methode namens Hello World. Diese ersetzten wir durch die Add Funktion. Ich werde den Aufbau mal etwas genauer erklären, da soweit ich weiß eine Vielzahl der Leser noch keine Erfahrungen im .Net gesammelt haben. Als erstes ist hier mal der Code der Add Methode:
<WebMethod()> _ Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function
Das WebMethod-Attribut ganz am Anfang der Funktion gibt an, dass es sich bei der Methode um eine Methode des WebServices handelt.
Mit Public Function wird eine öffentliche Funktion erstellt. Darauf folgt dann der Name der FUnktion, also Add. Mit dem Byval kann man einen Parameter deklarieren. Am Ende der Zeile steht ein „as Integer“. Es gibt an, dass der Rückgabe typ numerisch ist.
Return gibt wie in PHP auch den Wert zurück.
Mit dem End Function wird die Funktion abgeschlossen.
Namespace ändern
In PHP haben wir den Namespace auf http://temp.stevieswebsite.de gelegt. Das wollen wir hier wieder. Dazu gibt es in ASP das Attribut WebService, was als Parameter die Url benötigt. Hier ist nochmal der komplette Code:
Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols <WebService(Namespace:="http://temp.stevieswebsite.de")> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Public Class Math Inherits System.Web.Services.WebService <WebMethod()> _ Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function End Class
WebService testen
Das wars auch schon mit dem Erstellen. Ist doch ganz einfach, oder? Jetzt kommen wir zum testen. Dies kann auch direkt im Visual Studio geschehen. Dazu müssen wir einfach F5 drücken, was das Debuggen startet. Es öffnet sich der IE und mit der folgenden Seite:
Wenn wir nun auf das Add Klicken, können wir den WebService testen:
Hier können wir nun einfach unsere Testdaten in die Textboxen eingeben und auf „Aufrufen“ klicken, um das Ergebnis zurückzubekommen.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Kommentare
Zentrix schrieb am 05.05.2011:
Hallo, kann man den Webservie nicht auch mit einen Script Manager und einen Attribut nicht auch für AJAX Benutzen, oder ist dass nicht eigendlich AJAX??
Stefan Wienströer schrieb am 05.05.2011:
Diese Art von Webservices sind nicht dazu gedacht, über AJAX und allgemein über den Browser darauf zuzugreifen. Vielmehr geht es darum, Dienste für andere Server, Desktop-Anwendungen oder Apps zur Verfügung zu stellen.
Coder schrieb am 02.12.2011:
Kompliment für Anfänger gut erklärt. Kurz und bündig ... Klasse
Roland schrieb am 18.11.2012:
Hallo, wie kann man diesen WebService eine Funktion einer DLL ausführen lasssen?
Stefan Wienströer schrieb am 18.11.2012:
Im Endeffekt genauso wie in normalen Projekten auch. Die DLL muss dabei natürlich auf dem Server liegen und nicht auf dem Client.
Roland schrieb am 18.11.2012:
In normalen VB.net 2010 lege ich dazu in My Project einen Verweis auf die entsprechende DLL an und habe damit Zugriff auf deren Funktionen. Wie aber verweise im Code einer ASMX-Datei auf eine DLL?
Stefan Wienströer schrieb am 18.11.2012:
Auf dem direkten Weg geht das nicht. Dazwischen musst du eine eigene Klasse setzen, die dann intern auf die DLL zugreift.
Roland schrieb am 18.11.2012:
Hättest Du dafür ein Beispiel?
Stefan Wienströer schrieb am 19.11.2012:
Ne, leider nicht. Hab Visual Studio mittlerweile gar nicht mehr installiert
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project