| 

.NET C# Java Javascript Exception

1
Hallo,
Ich habe folgendes Problem:
Mehrere Client sollen sich täglich über das Internet auf einen zu erstellenden Dienst Daten übertragen und eine Antwort bekommen.
Dafür biete sich SOAP an. Ich habe schon mehrere SOAP Clients geschrieben. Nun mein Problem:
Für die Datenübermittlung habe ich ein wsdl file.
Leider habe ich überhaupt keinen Plan, wie ich den Server realisieren kann. Habe schon nach Beispielen gesucht aber leidern icht gefunden. Kann mir jemand auf die Sprünge helfen?
Danke im voraus für jeden Tipp und Hinweis.

Grüße Ingo
News:
11.09.2012
ingo 122 1 6
2
Sicher, dass es gleich die schweren SOAP-Geschütze sein müssen? Eventuell ist ein RESTful Webservice besser dafür geeignet einfach mal Daten an den Server zu schicken und eine Antwort zu bekommen.
REST wird ja angeblich auch in der .NET-Welt mittlerweile recht gut unterstützt und man spart sich den ganzen Overhead und wird nicht gezwungen alles in XML zu verpacken, was eigentlich in anderen Formaten eleganter verpackt werden könnte.
phg 11.09.2012
3 Antworten
1
Vorab: Wie schwer oder einfach das wird, hängt nicht unwesentlich davon ab, was genau in der WSDL steht und wie genau Du diese mit Deinem Service treffen mußt.

Im Prinzip solltest Du so vorgehen:

  • Erst mal steht eine Entscheidung an: baust Du den Service mit ASP.NET oder WCF? Parameter: Know-How, Anforderungen an den Service (z.B. Unterstützung von WS*-Protokollen), Art des Hosting (im IIS, self-hosted...)
  • Dann brauchst Du so oder so Klassen, die die zu übertragenden Datenstrukturen repräsentieren, sowie eine Klasse bzw. ein Interface, die/das die Operationen des Service abbildet. Wie letztere aussehen könnte, hat edvservice in seiner Antwort schon skiziiert. Auch die Datenklassen solltest Du versuchen, als POCOs mit Attributen zu implementieren (und hier wird es z.B. interessant, was die WSDL angeht). Das kannst Du von Hand machen, oder Du nutzt die wsdl.exe wie z.B. hier bei stackoverflow beschrieben.
  • Dann mußt Du natürlich die Service-Logik an sich implementieren - also die Service-Klasse mit Leben füllen, insbesondere die zu übertragenden Daten entgegennehmen bzw. erzeugen.
  • Schließlich gilt es, den Service irgendwo (meist im IIS) laufen zu lassen (Hosting). Wie das geht, steht in jedem guten Tutorial zu ASP.NET-Webservices bzw. WCF.

Was Du, wenn alles gut geht, nicht machen mußt: Dich mit HTTP und SOAP herumschlagen. Das macht .NET für Dich. Jedenfalls wenn die WSDL sich einigermaßen an Standards wie Basic Profile hält (siehe mein Eingangsstatement).
12.09.2012
Matthias Hlawatsch 13,2k 4 9
2
Dienste können z.B. mittels .asmx-Dienste im IIS erzeugt werden.
Prinzipieller Aufbau der .asmx-Datei:

Imports System.Web.Services
' ... weitere Imports

<WebService(Namespace:="http://www.xxx.de/")> _
Public Class Class1
Inherits System.Web.Services.WebService

' ... Variablen, Konstanten etc hier

<WebMethod()> _
Public Function Function1(ByVal Data As String) As String
' ... innerhalb der Funktion eine Businesskomponente aufrufen und Daten in Data verarbeiten und Rückgabe erzeugen
'...
Return Data
End Function
End Class

Das ist zwar VB, sollte sich aber auch in C# umsetzen lassen. Ich bin davon ausgegangen, dass Sie den IIS zum Hosten der Dienste verwenden.
Die WSDL bekommen Sie über den Aufruf:

http://<Host>/<Seite>/service.asmx?wsdl wenn Ihre Datei service.asmx heisst.
11.09.2012
edvservice 1,2k 6
0
Hallo,

danke für die Hinweise.

Grüße Ingo
12.09.2012
ingo 122 1 6

Stelle deine .net-Frage jetzt!