Avatar billede TBoy3 Novice
22. marts 2016 - 15:23 Der er 6 kommentarer og
1 løsning

WCF Service viser ikke alt data

Jeg har en wcf service der trækker en liste på 2735 poster fra en mssql og putter data i xml.

Når jeg læser fra servicen bliver data cuttet væk. jeg får ikke de sidste elementer med.

Jeg har prøvet at lave et udtræk der kun returnere 10 poster fra db, men her bliver data også cuttet, så tror ikke det har noget med maxReceivedMessageSize at gøre (som forøvrigt er sat til max).

Nogen der har et godt bud på dette?
Avatar billede jakobdo Ekspert
22. marts 2016 - 20:00 #1
Hvad hvis du kun returnerer 1 element retur. Bliver det også cuttet?
Avatar billede TBoy3 Novice
23. marts 2016 - 09:30 #2
@Jakobdo
Ja, det er så en anden ting der er lidt mærkelig. Hvis jeg tager under 10 elementer, så kommer der slet ikke noget med. Ved 10 elementer bliver den også cuttet.
Avatar billede TBoy3 Novice
23. marts 2016 - 10:12 #3
Har lige testet igen.
Hvis jeg udskriver xml til en fil, så kommer alle elementer med og jeg kan også bare bede om et element, som også kommer ud korrekt.

Det virker bare ikke når jeg skriver til webservice.

Jeg bruger nedenstående til fil
using (XmlWriter sw = XmlWriter.Create("customers.xml", xmlWriterSettings))

og denne til når der skal skrives til webservice
using (StringWriter sw = new StringWriter())
Avatar billede TBoy3 Novice
23. marts 2016 - 10:47 #4
Fandt fejlen :)

Jeg havde lagt min return sw forkert:

//using (XmlWriter sw = XmlWriter.Create("customers.xml", xmlWriterSettings))
            using (StringWriter sw = new StringWriter())
            {
                using (var xw = XmlWriter.Create(sw, xmlWriterSettings))
                {
                    xw.WriteStartDocument();
                    xw.WriteStartElement("Customers");

                    for (int x = 0; x < CustomerList.Count; ++x)
                    {
                        xw.WriteStartElement("Customer");
                        xw.WriteElementString("Index", CustomerList[x].INDEX.ToString());

                        xw.WriteEndElement();
                    }
                        xw.WriteEndElement();
                        xw.WriteEndDocument();
return sw.tostring(); lå her før. Det virkede åbenbart kun når der blev skrevet til fil??
                }
                return sw.ToString();
            }
Avatar billede jakobdo Ekspert
23. marts 2016 - 12:38 #5
Godt du fandt løsningen. :)
Avatar billede TBoy3 Novice
23. marts 2016 - 12:44 #6
Ja, tak for din hjælp. Du skulle selvfølgelig også have haft nogle point for din hjælp...
Avatar billede jakobdo Ekspert
23. marts 2016 - 21:51 #7
Det er helt 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

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