Avatar billede Torben_tt Nybegynder
15. februar 2013 - 18:36 Der er 5 kommentarer

Håndtere SOAP i .asmx

Jeg har brug for at lave en simpel webservice, der lister et produktkatalog, samt tager imod en ordre.

Jeg har lavet en .asmx fil der fint returnere et dataset, og har styr på hvordan det fungere med f.eks. string eller int input.

Der hvor jeg løber panden mod muren er når det kommer til SOAP. Hvordan håndteres SOAP kald i .asmx koden?

Jeg har en class med de properties der er i SOAP kaldet, men jeg kan simpelthen ikke finde ud af hvordan jeg får fat i SOAP kaldet i selve vb.net koden.

Udfordringen er naturligvis at der er et ukendt antal ordrelinjer i SOAP kaldet, og jeg derfor ikke bare kan lave 1:1 mappings, som jeg gør med de input der kommer ved kald af produkter.

På forhånd tak!
Avatar billede arne_v Ekspert
15. februar 2013 - 19:20 #1
En .asmx service er en SOAP servive, saa hvis din .asmx virker saa virker SOAP.
Avatar billede Torben_tt Nybegynder
15. februar 2013 - 19:37 #2
Tak for det hurtige svar!

Jeg må erkende at jeg simpelthen ikke forstår sammenhæng mellem SOAP udformningen og min function der præsenteres som webservice.

I den simple udgave, som blot returnere, har jeg "Public Function products (ByVal user As String, ByVal password As String) As String". Dette giver mening, og virker naturligvis ved f.eks. GET.

Det jeg ikke forstår er hvordan jeg laver en function der laver et SOAP eksempel hvor body er i retning af

<order>
<login>
  <name></name>
  <password></password>
</login>
<orderdetail>
</orderdetail>
</order>

Hvis jeg f.eks. laver en "Public Function order() As Login" hvor login er en class med login properties kan jeg se at SOAP eksemplet i asmx filen inkludere disse properties, men ikke i eksemplet for hvordan SOAP request ser ud.

Min første tanke var at lave en public function med alle de input der skulle til som "Byval xxx as String", men det er jo ikke rigtigt til når antal af ordrelinjer er ukendt.

Det er formodentligt blot undertegnede der ikke ser skoven for bare træer, men klappen er helt gået ned.
Avatar billede Torben_tt Nybegynder
15. februar 2013 - 19:56 #3
Så faldt 5 øren....

Det viser sig at være den basale OOP tankegang der ikke helt er på plads.
Avatar billede arne_v Ekspert
15. februar 2013 - 20:06 #4
Du laver din .asmx med en klasse med nogle metoder, du saetter attribut paa for at markere det som en web service, naar den kaldes foerste gang, saa genererer ASP.NET en masse kode som haandterer SOAP. Der genereres ogsaa en WSDL, saa klienter kan generere stub kode.
Avatar billede arne_v Ekspert
15. februar 2013 - 20:12 #5
.asmx er ioevrigt erstattet/suppleret af WCF
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester