Avatar billede fun22 Nybegynder
19. februar 2009 - 21:14 Der er 10 kommentarer og
1 løsning

Loop giver Stack overflow..

Hej..

Jeg har følgende kode der får serveren til at gå ned.. Når jeg går ind på siden står den bare i lang tid med "Websted fundet venter på svar" og så kommer den efter et stykke tid med "Service unavalible"..

Kan så se i loggen af der sker en "Stakoverflow"...

Dim directory As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(Server.MapPath("plugins"))

        For Each d As System.IO.DirectoryInfo In directory.GetDirectories
            Dim node As New TreeNode
            node.Text = d.Name
            node.ImageUrl = "~/Images/add.jpg"
            tvMenu.Nodes.Add(node)

            Dim RootNode As TreeNode = tvMenu.FindNode(d.Name)

            Dim myMenu = New XmlDocument
            myMenu.Load(MapPath("plugins/" & d.Name & "/AdminMenu.xml"))
            Dim myList As XmlNodeList
            myList = myMenu.GetElementsByTagName("nav")

            For Each el As XmlNode In myList
                node.Text = el.ChildNodes(0).InnerText

                node.ImageUrl = "~/Images/add.jpg"
                RootNode.ChildNodes.Add(node)
            Next
        Next

Hvad er det jeg gør galt??
Avatar billede arne_v Ekspert
19. februar 2009 - 21:17 #1
Formentligt laver du en uendelig rekursion.
Avatar billede fun22 Nybegynder
19. februar 2009 - 21:23 #2
Ja det var også min tanke.. men der er kun en mappe i plugins mappen.. Og kun en AdminMenu.xml...

Og i xml filen er der kun 3 poster...

Så jeg kan ikke lige se hvorfor den skulle gøre det...
Avatar billede arne_v Ekspert
19. februar 2009 - 21:29 #3
tvMenu.FindNode kalder ikke koden igen ?
Avatar billede fun22 Nybegynder
19. februar 2009 - 21:30 #4
Det skulle den ikke.. tvMenu er navnet på mit treeview.. så det skulle ikke..
Avatar billede arne_v Ekspert
19. februar 2009 - 21:37 #5
debug
Avatar billede fun22 Nybegynder
19. februar 2009 - 21:54 #6
Ikke noget jeg lige kunne få noget ud af..

Den løber loopen igennem en gang og alle værdierne passer, og når så den har været igennem en gang kommer:

An unhandled exception of type 'System.StackOverflowException' occurred in System.Web.dll

:(
Avatar billede arne_v Ekspert
20. februar 2009 - 02:10 #7
Så er det vel ikke i den kode der at det sker !?!?
Avatar billede fun22 Nybegynder
21. februar 2009 - 18:38 #8
Det er denn lykke:

For Each el As XmlNode In myList

Next

Selvom den bare står tom så går det galt..
Avatar billede arne_v Ekspert
21. februar 2009 - 19:13 #9
Har du på en eller anden måde fået listen gemt i sig selv ?
Avatar billede fun22 Nybegynder
21. februar 2009 - 19:30 #10
Jeg fandt ud af det.. Det var fordi jeg manglede at lave en
node = New TreeNode

For Each el As XmlNode In myList
                node = New TreeNode
                node.Text = el.ChildNodes(0).InnerText

                node.ImageUrl = "~/Images/add.jpg"
                RootNode.ChildNodes.Add(node)
            Next
Avatar billede fun22 Nybegynder
03. april 2009 - 17:57 #11
lukker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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



IT-JOB

Udviklings- og Forenklingsstyrelsen

Scrum Master

Cognizant Technology Solutions Denmark ApS

Senior Delivery Manager

Nitor Energy A/S

IT Infrastructure Specialist