Avatar billede kak Nybegynder
02. august 2010 - 09:01 Der er 7 kommentarer og
1 løsning

Hastighed ved kald af webservice

Jeg har en webservice, som henter data fra en database. Der er ret meget data i den, så i princippet kan det blive en stor mængde data der skal findes, og under alle omstændigheder, skal der i hvert fald søges i meget data.

Når jeg kalder webservicen fra en .Net side, er den da også meget langsom om at returnere et svar. Jeg tænkte umiddelbart, at det var mængden af data der gjorde det, men nu har jeg prøvet at kalde den samme webservice med samme parametre, blot via klassisk asp. Og det går MEGET hurtigere med at få et svar?!

Jeg har prøvet flere gange, og det er helt konsekvent. I klassisk asp gør jeg (nogenlunde) således:

xmlhttp.Open "POST",postUrl,false
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlhttp.send DataToSend
Response.Write(xmlhttp.responseText)

I .Net ser koden (nogenlunde) således ud:

Dim ws As New minWebservice.Service
strResult = ws.getData(DataToSend)

Desuden er webservicen jo importeret i mit projekt, for at jeg kan kalde den via minWebservice.

Er der nogen der har et bud på, hvorfor det er hurtigere via klassisk asp, når det der kaldes jo er det samme?
Avatar billede arne_v Ekspert
03. august 2010 - 01:05 #1
Din VB.NET kode - bruger den HTTP eller SOAP ??
Avatar billede kak Nybegynder
03. august 2010 - 08:03 #2
Hmmm, der er jeg lidt svar skyldig?!

Jeg har jo blot importeret webservicen, så jeg er ikke klar over, hvordan det er sat op. Hvordan kan jeg checke det?
Avatar billede arne_v Ekspert
04. august 2010 - 04:28 #3
Hvis du kigger på den genererede stub klasse, så kan du se det på hvilken klasse den arver fra.
Avatar billede kak Nybegynder
04. august 2010 - 08:51 #4
Jeg er lidt blank på dette område, så jeg er ikke sikker på, præcis hvad du mener :-(

Men hvis jeg kigger i .wsdl-filen, som er dannet i mit projekt, så er alt refereret både som HTTP og SOAP. F.eks. står dette i toppen:

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">


Og selve webservice funktionen står også med begge dele. F.eks.
<wsdl:message name="getDataSoapIn"> og  <wsdl:message name="getDataHttpGetIn">.

Så umiddelbart kan jeg ikke se, hvilken der bliver brugt. Men kan du give mig et hint til, hvordan jeg så ser det?
Avatar billede arne_v Ekspert
05. august 2010 - 04:35 #5
Jeg snakker om den stub klasse som genereres fra wsdl for client.
Avatar billede kak Nybegynder
05. august 2010 - 09:17 #6
Jeg beklager, men jeg kan ikke finde det du beskriver (sikker pga. min manglende viden om emnet) :-(

Hvis jeg søger i alle filerne på sitet, kan jeg kun finde en reference til webservicen i fire filer (ud over den, som jeg kalder servicen fra, og her kalder jeg den jo blot med "Dim ws As New minWebservice.Service" og "strResult = ws.getData(DataToSend))").

De fire filer er web.config, som blot har en key under <appSettings>. De tre andre er de filer, som automatisk blev dannet, da jeg importerede webservicen (.wsdl, .disco og .discomap)

Jeg kan ikke finde noget om "esdl for client" i nogen af dem. Wsdl filen har reference til både http og soap, så den bliver jeg ikke klogere på.


.disco filen har en "<soap address=..." sektion, men ingen reference til http. Så det er mit bedste bud, men ellers er jeg på bar bund.
Avatar billede kak Nybegynder
19. oktober 2010 - 13:25 #7
Jeg kom aldrig helt i mål med denne her, men vil du oprette et svar, arne_v, da jeg gerne vil give point for din hjælp!
Avatar billede arne_v Ekspert
19. oktober 2010 - 13:59 #8
ok
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