Avatar billede ChristianHA Nybegynder
08. februar 2010 - 11:48 Der er 8 kommentarer

Problemer med returnering fra webservice

Kære alle

Jeg er (forholdsvis) nybegynder når det kommer til vb.net (express, 2008), og det er måske også en mundfuld jeg har valgt at kaste mig ud i. Men det bliver ud fra devicen "learning by doing and failing" ;)

Jeg ønsker at lave en applikation som (når den startes op) kalder en webservice og returnerer svaret (adresser) som så lægges i en combobox brugeren kan vælge ud fra. Jeg har fået strikket noget sammen som umiddelbart giver mening, men jeg får fejlen, at der bliver returneret mere end 65536 karakterer, og at "Hvis du vil øge kvotaen, skal du bruge egenskaben MaxReceivedMessageSize på det tilhørende bindingselement.". Er løsningen at øge dette (og hvordan helt konkret?) eller findes der en anden måde at gøre det på? Jeg har listet koden nedenfor - den kan ikke umiddelbart køres da der mangler brugernavn + password, men det giver stadig en ide. :)

Public Class Form1

    Private service As KMS.GeoKeysFacadeImplClient = Nothing

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        service = New KMS.GeoKeysFacadeImplClient()

        Dim kflogin As String
        Dim kfpassword As String
        Dim komnr As String
        Dim spatialreference As String

        Dim returnadress As Array

        komnr = "XXXX"
        kflogin = "YYYYY"
        kfpassword = "ZZZZZ"
        spatialreference = "EPSG:25832"


        returnadress = service.getStreetsInMunicipality(komnr, spatialreference, kflogin, kfpassword)

        Dim i As Integer = 0, j As Integer = returnadress.Length
        While i < j
            Dim name As String = returnadress(i).streetname
            Dim code As String = returnadress(i).streetcode
            System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
        End While

        ComboBox1.Items.AddRange(returnadress)
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

    End Sub
End Class
Avatar billede janus_007 Nybegynder
08. februar 2010 - 19:18 #1
Lyder mere som om det er en WCF Service du har gang i?

Anyway... du har formodentligt en <system.serviceModel> i din config (client), der ligger en binding som default står til 65536!

Det er jo ikke meget, så den kan du roligt sætte op :)
Avatar billede csvendsen Nybegynder
09. februar 2010 - 05:23 #2
Jeg havde samme problem for nogen tid siden og indsatte følgende linie i config flen:

<jsonSerialization maxJsonLength="50000000">

under    <system.web.extensions>
        <scripting>
            <webServices>

men kommentar #1 fra janus_007 virker måske også, det kan du jo prøve først.
Avatar billede ChristianHA Nybegynder
09. februar 2010 - 08:28 #3
Tak for hjælpen!

Csvendsen> Hvor indsætter du den linie? JEg kan ikke finde <system.web.extensions> nogle steder.. :/
Avatar billede csvendsen Nybegynder
10. februar 2010 - 05:36 #4
Undskyld, det er selvfølgelig i web.config filen.

Har du ikke <system.web.extensions> mv. så opretter du dem under:

<configuration>
<system.web.extensions>       
  <scripting>
      <webServices>
      <jsonSerialization maxJsonLength="50000000">
      </webServices>
  </scripting>
</system.web.extensions>       
</configuration>
Avatar billede ChristianHA Nybegynder
10. februar 2010 - 09:07 #5
Se nu kommer jeg til at spørge rigtigt dumt; hvor ligger web.config filen? Den eneste config fil jeg har liggende i projektmappen er app.config. Og så begynder jeg at spekulere på om jeg har misforstået noget. Mit udgangspunkt var at lave applikationen som standalone (dvs. ikke som en browser baseret applikation). Gør jeg i den forbindelse noget forkert? Kan godt se at jeg bevæger mig lidt væk fra spørgsmålets udgangspunkt, det beklager jeg. :/
Avatar billede csvendsen Nybegynder
11. februar 2010 - 06:00 #6
Hvis det ikke er en web applikation, så har du ikke en web.config fil.
Jeg har ikke prøvet at arbejde med WebService i en windows appliktion, så her kan jeg ikke hjælpe.
Har du forsøgt #1: kommentar fra janus_007.
Avatar billede csvendsen Nybegynder
11. februar 2010 - 06:51 #7
Ellers prøv at indsætte dette i din app.config under
<configuration>

<system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="50000000">
        </jsonSerialization >
        </webServices>
    </scripting>
  </system.web.extensions>

Jeg ved dog ikke om det virker i en windows appl.
Avatar billede tubber Juniormester
11. februar 2010 - 08:12 #8
Jeg har brugt en web app control i en selvstændig applikation

Det jeg gjorde var at tilføje refferencen: System.Web
Du finder refferencer under Projekts -> Add Refference og den hedder muligvis System.Web.dll

Det skulle åbne for nogle web controller.

Kunne forstille mig du også skal have en import med:
Imports System.Web.Extensions 'Sættes ind aller øverst i din kode

Måske det kan hjælpe lidt på vej :)
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